9

Razor View Engine テンプレートで、次のことを実行したいと考えています。html属性の二重引用符の間にコードを挿入したいと考えています。問題は、挿入したいコード自体に二重引用符が含まれていることです。

<a href="Url.Action("Item", new { id = Model.Item.Id, page = page });">@page</a>

物事がいかにひどく間違っているかを簡単に見ることができます:-) 変数のリンクを計算してそれを使用できることは知っていますが、私はむしろそうしません:

@{ var action = Url.Action("Question", new { id = Model.Question.Id, page = page }); }                   
<a href="@action">@page</a>                                        
4

3 に答える 3

20

Razorを使用して脱出する必要はありません。Razorは、解析時にhtmlの外にエスケープしているため、引用符が属性内にあるかどうかを知るのに十分賢いです。

<a href="@Url.Action("Item", 
       new { id = Model.Item.Id, page = page })">@page</a>

そのコードは正常に機能します-呼び出し@の前に記号があることを確認してください。記号Url.Actionがないと適切に解析されず、質問に記号がないことに気付きます。

編集:削除; Url.Actionはステートメントではないため。

于 2010-11-22T20:34:29.603 に答える
8

たぶん私はあなたの質問を理解していませんでした.その場合は私を修正してください.

@Html.ActionLink(page, "Question", new { id = Model.Question.Id, page = page })
于 2010-11-22T22:13:17.760 に答える