如何使用条件剃刀模板 C#
How to work conditional razor template c#
我正在尝试此代码,但在 运行 时出错。我想如果 IsUPS 具有真值,那么新的 table 行和 table 数据将添加到 table 如果 IsUPS 为假,则 table 将有一个 table行和数据?如何使用剃刀模板实现这一目标?请指导。谢谢
string template = "<table><tr><td>This is my sample template,
Hello @Model.Name!</td></tr> @if (@Model.IsUPS) {<tr><td> it is ups</td></tr> }
</table>";
string result = Razor.Parse(template, new { Name = "World", IsUPS = true });
首先:我认为错误会产生以下语句:
@if (@Model.IsUPS)
应该是:
@if (Model.IsUPS)
在第一个 @
之后你应该放服务器端代码,所以在写条件时另一个 @
是不必要的。
其次:模板是不是单行粘贴的?如果不是,则需要使用逐字字符串:
string template = @"<table><tr><td>This is my sample template,
Hello @Model.Name!</td></tr> @if (Model.IsUPS) {<tr><td> it is ups</td></tr> }
</table>";
第三: 向我们展示您遇到的错误。您在使用 RazorEngine
库吗?
第四:在我修改代码应该可以工作之后,我自己检查了。
假设您的 "string result =" 线路工作正常;
有很多事情我会在这里做不同的事情。
与您使用“@”有关的错误消息(您应该真正分享错误是什么)。
试试这个:
@{
string template = @"<table><tr><td>This is my sample template, Hello" + this.Model.Name + @"!</td></tr>";
if (true)
{
template += @"<tr><td> it is ups</td></tr>";
}
template += @"</table>";
}
“@{ }”块将 html 封装在剃刀块中,因此 @ 用于剃刀更改。请注意,我已经使字符串使用 @"" 而不是 "",这样如果您想在行之间拆分 html,则不需要进行字符串连接。
我正在尝试此代码,但在 运行 时出错。我想如果 IsUPS 具有真值,那么新的 table 行和 table 数据将添加到 table 如果 IsUPS 为假,则 table 将有一个 table行和数据?如何使用剃刀模板实现这一目标?请指导。谢谢
string template = "<table><tr><td>This is my sample template,
Hello @Model.Name!</td></tr> @if (@Model.IsUPS) {<tr><td> it is ups</td></tr> }
</table>";
string result = Razor.Parse(template, new { Name = "World", IsUPS = true });
首先:我认为错误会产生以下语句:
@if (@Model.IsUPS)
应该是:
@if (Model.IsUPS)
在第一个 @
之后你应该放服务器端代码,所以在写条件时另一个 @
是不必要的。
其次:模板是不是单行粘贴的?如果不是,则需要使用逐字字符串:
string template = @"<table><tr><td>This is my sample template,
Hello @Model.Name!</td></tr> @if (Model.IsUPS) {<tr><td> it is ups</td></tr> }
</table>";
第三: 向我们展示您遇到的错误。您在使用 RazorEngine
库吗?
第四:在我修改代码应该可以工作之后,我自己检查了。
假设您的 "string result =" 线路工作正常;
有很多事情我会在这里做不同的事情。
与您使用“@”有关的错误消息(您应该真正分享错误是什么)。
试试这个:
@{
string template = @"<table><tr><td>This is my sample template, Hello" + this.Model.Name + @"!</td></tr>";
if (true)
{
template += @"<tr><td> it is ups</td></tr>";
}
template += @"</table>";
}
“@{ }”块将 html 封装在剃刀块中,因此 @ 用于剃刀更改。请注意,我已经使字符串使用 @"" 而不是 "",这样如果您想在行之间拆分 html,则不需要进行字符串连接。