11

如何在剃刀代码中转义冒号?

这是我的问题:

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

2 回答 2

18

您需要将代码的显示部分包装在<text>标签中。冒号不需要转义。

@{
    int count = 0;

    foreach (var item in Model.Wishes) {
        count++;
        <text>
        @count: @item.Title - @item.Link - @item.Price
        <br />
        </text>
    }
}

https://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 元素包装的多行内容块时,这很方便。

https://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax#BM_CombiningTextMarkupAndCode

使用@:运算符或<text>元素。输出包含纯文本或不匹配的 HTML 标记的@:单行内容;该<text>元素包含要输出的多行。当您不想将 HTML 元素呈现为输出的一部分时,这些选项很有用。

于 2013-04-14T00:48:06.737 回答
0

如果 count 被声明为变量,那么这应该可以工作。

@{
   var count = 4;
}

   @count: 

如果 count 是您模型的一部分,那么这应该可以。

@model MvcApplication4.Models.DemoViewModel

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>



@Model.Count: 
于 2013-04-14T00:36:23.187 回答