2013-04-14 21 views
6

剃刀コードでコロンをエスケープするにはどうすればよいですか? @count変数の後にエラーの原因となっている剃刀エスケープコロンインライン

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

は、これは私の問題です。私のカウントの隣にコロンをどのように使用できますか?

それは次のようにレンダリングする必要があります。

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>タグ要素をレンダリングしません(<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タグを含む1行のコンテンツを出力します。 <text>要素は複数の行を囲んで出力します。これらのオプションは、HTML要素を出力の一部としてレンダリングしたくない場合に便利です。

+0

これは金色です。あなたの助けてくれてありがとう: – aventic

+0

私は長年にわたりかみそりを使ってきましたが、この小さなトリックは私を渡しました。いくつかの問題を解決する:) – Spikeh

0

カウントが変数として宣言されている場合、これは動作するはずです。

@{ 
    var count = 4; 
} 

    @count: 

カウントがモデルの一部である場合、これは機能するはずです。

@model MvcApplication4.Models.DemoViewModel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 



@Model.Count: 
関連する問題