尝试通过部分将模型对象渲染为JSON结构,如下所示:
@if( Model.IsEmpty ) {
@( Model.UseNull ? "null" : "" )
} else {
@{ int i = 0; }
@foreach( var program in Model.Programs ) {
<text>
@(++i > 1 ? "," : "" )
{
"Id": "@program.ProgramId",
"Title": "@Html.Js( program.Title )",
"Url": "@Html.Js( program.Url )",
}
</text>
}
}
Run Code Online (Sandbox Code Playgroud)
页面编译器在foreach行上抱怨,认为@符号是多余的.删除它会导致之前的行上的编译错误.如果我将if/else的整个部分括在<text>块中,它就可以了.
除了使用显式文本部分之外,有没有办法提示编译器或转义大括号以避免这些错误?
在代码块中,您不能使用@字符来创建更多代码块.
将您的代码更改为
@if( Model.IsEmpty ) {
if (Model.UseNull) {
@:null
}
} else {
int i = 0;
foreach( var program in Model.Programs ) {
if (++i > 1) {
@:,
}
<text>
{
"Id": "@program.ProgramId",
"Title": "@Html.Js( program.Title )",
"Url": "@Html.Js( program.Url )",
}
</text>
}
}
Run Code Online (Sandbox Code Playgroud)
但是,您应该使用JSON序列化程序.
| 归档时间: |
|
| 查看次数: |
4389 次 |
| 最近记录: |