2013-04-14 53 views
6

我如何在我的剃刀代码中冒号冒号?剃刀逃生冒号内联

这是我的问题:

@[email protected]:: @item.Title - @item.Link - @item.Price 

这是@count可变后造成的错误。我怎么能够在我的计数旁边使用冒号?

它应该呈现这样的:

1: Title - Link - Price 

**更新**

我的代码块

@{ 
    int count = 0; 
    foreach (var item in Model.Wishes) { 
     count++; 
     @[email protected]:: @item.Title - @item.Link - @item.Price 
     <br /> 
    } 
} 
+0

'@count:'有什么问题? – Jasen

+0

难道你不能使用@count: –

+0

是计数在其他地方定义的变量,还是你在使用模型? –

回答

10

您需要将代码的显示部分包裹在<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将<text>块的内部内容解释为内容,并且不会渲染包含<text>标记元素(这意味着只会呈现<text>元素的内部内容 - 标记本身不会)。这样可以方便您呈现未包含HTML元素的多行内容块。

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

使用@:运营商或<text>元素。 @:输出包含纯文本或不匹配的HTML标签的单行内容; <text>元素包含多行输出。当您不想将HTML元素作为输出的一部分进行渲染时,这些选项很有用。

+0

好吧,这是黄金。感谢您的帮助:) – aventic

+0

我一直在使用剃刀多年,但这个小窍门通过了我。解决了很多问题:) – Spikeh

0

如果计数被声明为一个变量,那么这应该工作。

@{ 
    var count = 4; 
} 

    @count: 

如果count是模型的一部分,那么这应该工作。

@model MvcApplication4.Models.DemoViewModel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 



@Model.Count: