如何在剃刀代码中转义冒号?
这是我的问题:
@count@:: @item.Title - @item.Link - @item.Price
@count变量后导致错误。我怎么能在我的计数旁边使用冒号?
它应该像这样呈现:
1: Title - Link - Price
**更新**
我的代码块
@{
int count = 0;
foreach (var item in Model.Wishes) {
count++;
@count@:: @item.Title - @item.Link - @item.Price
<br />
}
}
答案 0 :(得分:13)
您需要将代码的显示部分包裹在<text>
标记中。结肠不需要逃脱。
@{
int count = 0;
foreach (var item in Model.Wishes) {
count++;
<text>
@count: @item.Title - @item.Link - @item.Price
<br />
</text>
}
}
http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx
<text>
标签是由Razor专门处理的元素。它导致Razor将<text>
块的内部内容解释为内容,并且不呈现包含<text>
标记元素(意味着仅呈现<text>
元素的内部内容 - 标签本身不会)。这样,当您想要渲染未被HTML元素包装的多行内容块时,这将非常方便。
使用
@:
运算符或<text>
元素。@:
输出包含纯文本或不匹配的HTML标记的单行内容;<text>
元素包含多行以输出。当您不希望将HTML元素呈现为输出的一部分时,这些选项很有用。
答案 1 :(得分:0)
如果count被声明为变量,那么这应该可行。
@{
var count = 4;
}
@count:
如果count是模型的一部分,那么这应该可行。
@model MvcApplication4.Models.DemoViewModel
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Model.Count: