gpt4 book ai didi

razor - 如何在 Razor 中正确转义牙套

转载 作者:行者123 更新时间:2023-12-04 17:27:46 38 4
gpt4 key购买 nike

尝试通过部分将模型对象呈现为 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>
}
}

页面编译器在 foreach 行提示,认为 @ 符号是多余的。删除它会导致前一行出现编译错误。如果我将 if/else 的整个部分包含在 <text> 中 block ,它的工作原理。

除了使用显式文本部分之外,有没有办法提示编译器或转义大括号以避免这些错误?

最佳答案

在代码块内,不能使用 @字符以创建更多代码块。

将您的代码更改为

@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>
}
}

但是,您应该改用 JSON 序列化程序。

关于razor - 如何在 Razor 中正确转义牙套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5588595/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com