Razor-Code zwischen doppelten Anführungszeichen
-
27-09-2019 - |
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>
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