我正在尝试此代码,但在运行时收到错误。我想如果IsUPS具有真正的价值,那么新的表格行和&如果IsUPS为false,那么表数据将被添加到表中,那么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 });
答案 0 :(得分:1)
假设您的&#34;字符串结果=&#34;线正常工作;
我会在这里采取不同的做法。
与您使用&#34; @&#34;相关的错误消息(您应该真的已经分享了错误)。
试试这个:
@{
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>";
}
&#34; @ {}&#34; block将html封装在razor块中,因此使用@来更改razor。请注意我已经使用了@&#34;&#34;而不是&#34;&#34;因此,如果你想在行之间拆分html,你就不需要进行字符串连接。
答案 1 :(得分:0)
首先:我认为错误会产生以下声明:
@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
库吗?
第四:我修复后代码应该有效,请自行检查。