2010-11-22 6 views
6

Dans un modèle Razor View Engine, je veux faire ce qui suit: Je veux mettre un code entre les guillemets d'un attribut html. Le problème est que le morceau de code que je veux insérer contient lui-même des guillemets doubles.Razor code entre guillemets

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

Vous pouvez facilement voir comment les choses tournent vraiment mal :-) Je sais que je peux calculer le lien dans une variable puis l'utiliser, mais je préfère ne pas:

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

Répondre

17

Vous n Pas besoin d'échapper ou de quelque chose en utilisant Razor. Razor est assez intelligent pour savoir quand les guillemets sont dans les attributs car vous vous échappez en dehors de html quand vous l'analysez.

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

Ce code fonctionne bien - Assurez-vous que vous avez le symbole @ devant l'appel Url.Action parce que si vous ne le faites pas, il ne sera pas analysé correctement et je remarque que vous ne l'avez pas dans ta question.

Édition: supprimée; comme Url.Action n'est pas une déclaration.

+4

Une note: si vous avez besoin préfixe constant dans votre attribut combiné avec l'expression Razor, vous devez ajouter des parenthèses après le @ char, sinon Razor le traite comme une adresse e-mail. Exemple: 'id =" préfixe @ (Model.Id) "' –

8

Peut-être que je ne comprends pas votre question dans ce cas, s'il vous plaît me corriger, mais vous ne pouvez pas simplement:

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

Cela peut être correct:

href="@(action)"> @page 
+0

Triste que vous avez voté - la solution à mon problème était d'ajouter @ (xxx) au lieu de sans les() - et je suppose que c'est ce que vous disaient - mettre les trucs 'action' inside() - qui a résolu mon problème exactement, @xxx ne fonctionnait pas dans "" –

Questions connexes