asp.net mvc将js代码注入Razor

时间:2012-10-30 17:50:51

标签: asp.net asp.net-mvc razor

我怎么做?

$for (var i = 0; i < model.CategoryList.length; i++) {
   var text = model.CategoryList;
   categories += '<span class="label label-info">' + @((AgesCategory)int.Parse( ..... )).GetDescription() + '</span>';
 }

我需要从JS代码中将 int.Parse(.....))替换为 int.Parse(model.CategoryList [i])。我无法将 text 变量添加到 int.Parse(...) intellisense中检测到此代码,如c#代码,而不是JS。

更新:

我会尝试重新构建我的问题:如何从JS变量设置值C#变量?

<script>
    var temp1 = 1;   // js var
    @{ string temp2 = 0 ;}  // c# var
    @{ temp2 = temp1 } // how do it?
    var temp2 = @(((MyEnumType)int.Parse(temp2).GetEnumDescription()));  //js var
</script>

需要用什么? '@:' 或者是其他东西?在所有情况下,我都会收到语法错误

2 个答案:

答案 0 :(得分:0)

了解您可以在&lt; script&gt;中使用@表达式视图中的块。如果这样做,某些开发人员工具可能不会显示JavaScript代码块的代码着色或Intellisense,但这不会影响网站编译和运行的能力。

HTH, 粘土

答案 1 :(得分:0)

我认为不可能。因为javascript在运行时执行,所以编译C#,它不知道运行时javascript的值,所以会出错。

您可以在C#中对“动态”类型进行一些研究,这在运行时使用。

但很抱歉,我无法在这里编写演示,因为我对“动态”没有太多的过期,尽管我知道它可以在C#上做跨语言的事情。我只能给你这个建议。