Frage

In einer Razor Ansicht Motor Vorlage, möchte ich folgendes tun: Ich möchte einige Code setzen zwischen den doppelten Anführungszeichen eines html Attribut . Das Problem ist, dass das Stück Code, den ich einfügen wollen einige doppelte Anführungszeichen selbst enthält.

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

Sie können leicht sehen, wie die Dinge schief drehen :-) Ich weiß, dass ich den Link in einer Variablen berechnen kann, und verwenden Sie es dann, aber ich würde lieber nicht:

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

Lösung

Sie brauchen nicht zu entkommen oder irgendetwas mit Razor. Razor ist intelligent genug, um zu wissen, wann Anführungszeichen innerhalb Attribute sind, weil Sie außerhalb von HTML sind entkommen, wenn Sie es analysieren.

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

wird Dieser Code funktionieren - So stellen Sie sicher, dass Sie das @ Symbol vor dem Url.Action Anruf, denn wenn Sie dies nicht tun es nicht richtig analysiert werden, und ich merke, Sie haben es nicht in Frage <. / p>

Edit: entfernt; wie Url.Action ist keine Aussage.

Andere Tipps

Vielleicht habe ich nicht verstehe Ihre Frage, in welchem ??Fall bitte korrigieren Sie mich aber nicht kann man einfach:

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

Das kann richtig sein:

href="@(action)"> @page 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top