Pergunta

Em um modelo de mecanismo de visualização de navalha, quero fazer o seguinte: quero colocar alguns código entre as citações duplas de um html atributo. O problema é que o pedaço de código que quero inserir contém algumas cotações duplas.

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

Você pode ver facilmente como as coisas ficam terrivelmente erradas :-) Eu sei que posso calcular o link em uma variável e depois usá-lo, mas eu prefiro não:

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

Solução

Você não precisa escapar ou qualquer coisa usando Razor. A Razor é inteligente o suficiente para saber quando as cotações estão dentro dos atributos porque você está escapando para fora do HTML quando a analisa.

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

Esse código funcionará bem - apenas verifique se você tem o @ símbolo em frente ao Url.Action Ligue porque, se não o fizer, não será analisado corretamente e noto que você não a tem em sua pergunta.

Editar: removido; Como o URL.Action não é uma declaração.

Outras dicas

Talvez eu não tenha entendido sua pergunta em que caso, por favor me corrija, mas você não pode simplesmente:

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

Isso pode estar correto:

href="@(action)"> @page 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top