Вопрос

В шаблоне просмотра двигателя Razor я хочу сделать следующее: я хочу поставить некоторые код между двойными цитатами 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>                                        
Это было полезно?

Решение

Вам не нужно сбежать или что-нибудь с помощью бритвы. Бритва достаточно умна, чтобы знать, когда цитаты находятся в пределах атрибутов, потому что вы избегаете за пределами HTML, когда вы проанализируете его.

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

Этот код будет работать нормально - просто убедитесь, что у вас есть @ Символ перед Url.Action Позвоните, потому что если вы этого не сделаете, это не будет принято правильно, и я замечаю, что у вас его нет в своем вопросе.

Редактировать: удален; Как URL.action не является утверждением.

Другие советы

Может быть, я не понял ваш вопрос, в каком случае, пожалуйста, исправь меня, но вы не можете просто:

@Html.ActionLink(page, "Question", new { id = Model.Question.Id, page = page })

Это может быть правильно:

href="@(action)"> @page 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top