Text literal problem in MVC3 Razor-Ansicht
Warum bin ich die <text>
- tag zu umschließen, das pipe-Zeichen '|' in diesem markup? Sicherlich ist es auch außerhalb des Anwendungsbereichs des ActionLink-Methode.
@foreach (var item in Model.DetailItem.PlannedResources)
{
<tr>
<td>
@if (Model.ViewMode == ViewMode.Edit)
{
@Html.ActionLink("Edit", "Edit", new { id = item.PlannedResourceId }) <text>|</text>
@Html.ActionLink("Delete", "Delete", new {id = item.PlannedResourceId})
}
@Html.ActionLink("Details", "Details", new { id = item.PlannedResourceId })
</td>
<td>
| @item.ResourceType.Name
</td>
</tr>
}
Wenn ich Sie nicht nutze, bekomme ich die Fehlermeldung CS1525: Invalid expression term '|'
, aber die zweite '|' wird durch ungehindert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist, weil, wenn Sie sich innerhalb einer Anweisung mit
{
und}
nur HTML-tags werden als Literale, alles andere ist server-seitiges script. So müssen Sie entweder verwenden Sie ein standard-HTML-tags wie<div>
,<span>
... oder wenn Sie wollen ein literal verwenden Sie die spezielle<text>
tag, das ist nicht ausgegeben, um die Antwort.{}
redest du? Welche änderungen?{}
, die|
Zeichen innerhalb eines Tags:<td>
, das ist, warum es funktioniert in der Erwägung, dass im inneren es gibt keinen tag: Sie haben{
einige server-side helper@Html.ActionLink
Folgen direkt|
, ohne tag und, wenn es keine tag-es ist als server-Seite.Wenn Ihr text mehrere Zeilen umfasst, die Sie verwenden können, die
<text>
tag.<text>your text here...
over to the 2nd line.</text>
Alternativ, wenn Sie wollen einfach nur, um die Ausgabe der pipe-Zeichen verwenden, die
@:
Richtlinie angeben, text,so
@:|
Ausgabe|
, und die Fehlermeldung wird verschwinden.