Javascript 使用razor添加js代码
我正在动态生成一些选项卡。我最后有4个标签。选项卡的类在foreach循环中设置,它被设置为languageId,如下面的代码所示Javascript 使用razor添加js代码,javascript,asp.net-mvc,razor,Javascript,Asp.net Mvc,Razor,我正在动态生成一些选项卡。我最后有4个标签。选项卡的类在foreach循环中设置,它被设置为languageId,如下面的代码所示 <div id="tabs"> <ul> @for (int i = 0; i < Model.NoteViewModel.NoteTextViewModels.Count(); i++) { v
<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>
我怎样才能做到这一点
我不能用razor语法编写js代码
当然可以,不过您可能需要明确地告诉视图引擎这是客户端内容,而不是服务器端代码。你可以用它来做这件事。它本身不是一个HTML标记,而是razor引擎用来指定静态内容的东西。大概是这样的:
@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();
}
}
<script type="text/javascript">
@for (int i = 0; i < Model.NoteViewModel.NoteTextViewModels.Count(); i++)
{
<text>
var someJavaScriptVariable = 'some value';
// etc.
</text>
}
</script>
@对于(int i=0;i
您的答案是正确的,但我确信这将导致JavaScript错误,因为如果Model.Note…Models.Count()
大于1,则会定义someJavaScriptVariable
。我建议在循环外使用数组,并在for循环内推送值var someJavaScriptArray=[]@对于(int i=0;i