2013-04-14 3 views
6

Как избежать двоеточия в моем коде бритвы?Razor escape colon inline

Это мой вопрос:

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

Что вызывает ошибку после @count переменной. Как я могу использовать двоеточие рядом с моим счетом?

Он должен оказывать так:

1: Title - Link - Price 

** UPDATE **

Мой кодоблок

@{ 
    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> (что означает, что будет отображаться только внутреннее содержимое элемента - сам тег не будет). Это делает его удобным, если вы хотите отображать многострочные блоки контента, которые не обертываются элементом 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: 

Если счетчик является частью вашей модели, тогда это должно сработать.

@model MvcApplication4.Models.DemoViewModel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 



@Model.Count: 
Смежные вопросы