使用 Razor 添加 JS 代码
adding js code with razor
我正在动态生成一些选项卡。我最终有 4 个选项卡。选项卡的类是在foreach循环中设置的,它被设置为languageId,如下面的代码所示。
<div id="tabs">
<ul>
@for (int i = 0; i < Model.NoteViewModel.NoteTextViewModels.Count(); i++)
{
var languageId = @Model.NoteViewModel.NoteTextViewModels[i].LanguageId;
var imageName = string.Format("FlagSmall_{0}.gif", languageId);
<li>
<a href="#@languageId" class="@currentLanguage">
<img src="@Url.Content("~/Graphics/" + imageName)" />
</a>
</li>
}
</ul>
现在我介绍一个新变量:var currentLanguage = new NotesController().LogonInfo.LanguageId;
它保存登录用户的当前语言。我想做的是将焦点设置在 href(或 id 或类)与当前语言相同的选项卡上。为此,我想我需要 js,但由于我无法使用带有 razor 语法的 js 代码,所以我被困住了。所以我想要这样的东西:
@for (int i = 0; i < Model.NoteViewModel.NoteTextViewModels.Count(); i++)
{
var languageId = @Model.NoteViewModel.NoteTextViewModels[i].LanguageId;
var currentLanguage = new NotesController().LogonInfo.LanguageId;
var imageName = string.Format("FlagSmall_{0}.gif", languageId);
<li>
<a href="#@languageId">
<img src="@Url.Content("~/Graphics/" + imageName)" />
</a>
</li>
if (languageId == currentLanguage)
{
documentation.getElementById("currentLanguage").focus();
}
}
我怎样才能做到这一点?
我不能有带有剃刀语法的 js 代码
当然可以,但您可能需要显式告诉视图引擎这是客户端内容,而不是服务器端代码。 您可以使用 <text>
标记执行此操作。 它本身不是一个 HTML 标签,而是 razor 引擎用来指定静态内容的东西。 像这样:
<script type="text/javascript">
@for (int i = 0; i < Model.NoteViewModel.NoteTextViewModels.Count(); i++)
{
<text>
var someJavaScriptVariable = 'some value';
// etc.
</text>
}
</script>
相关文章:
- Meteor JS中代码的重复使用部分
- 骨干模型默认值-todos.js示例中不必要的代码
- 为什么indexOf在这个js代码中不起作用
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- js代码从jQuery转换为原生代码
- JS代码中的减号
- 将JS函数传递给Emscripten生成的代码
- 谷歌地图Api和JS代码不工作
- HTML 5 和 3.js 代码不会在网页上显示任何内容
- Node.js:异步代码 + js 闭包的问题
- Chrome 开发者工具 - 控制台.log原生代码 JS
- 为jQuery和KNOCKOUT通用化javascript代码.js成为一个可重用的模块
- .ninnerHtml代码(JS/JQuery)无法识别html表中的动态内容
- 生成唯一的6位代码js
- 我得到了“;赋值中的左侧无效“;在我的代码(JS)中
- 更改代码(JS)中JQuery Mobile Calendar日期的状态
- 如何改进代码JS(Jquery)?一个简单的下拉列表
- 从传输中了解代码.js
- 这段代码(JS)的区别是什么?
- JavaScript倒计时计时器代码[JS]