作为一项测试,我正在将我们编写的概念验证程序从Web Forms转换为Razor,仅仅是为了我们能够对其进行评估。
到目前为止,我遇到了一个让我头疼的问题...如何生成客户端JavaScript...
Web Forms
<script type="text/javascript">
var jqGridIdList = "<%: Url.Action ("getidlist", "office", new { area = "reports" }) %>";
var availableIds = [];
<% for (var i = 0; i < Model.Data.Count (); i++) { %>
availableIds.push({ value : "<%: Model.Data.ElementAt (i).Text %>", label : "<%: Model.Data.ElementAt (i).Text %>" });
<% } %>
</script>
Razor语法
<script type="text/javascript">
var jqGridIdList = "@Url.Action("getidlist", "office", new { area = "reports" })";
var availableIds = [];
@for(var i = 0; i < Model.Data.Count (); i++) {
availableIds.push({ value : "@Model.Data.ElementAt(i).Text", label : "@Model.Data.ElementAt(i).Text" });
}
</script>
编译器在'availableIds.push'这一行给了我以下错误:
编译器错误信息:CS1525: 无效的表达式项 '{'
很明显它试图将其编译为C#代码...但我该如何停止它呢?
谢谢,
Kieron
<text>
中的基本优点是什么? - Imad Alazani<text>
只是告诉 Razor 解析器应该将其输出到浏览器。否则解析器会认为它是代码,因为它不是 HTML 元素。 - Buildstarted