Mein Ziel ist bedingt Deaktivieren Sie eine Dropdown-Liste abhängig vom Status des Modells, das an die Ansicht übergeben wird.Wie Sie <select> von Tag Helper konditional deaktivieren?
Der folgende Code macht richtig einen behinderten <select>
Tag (aber nicht bedingt):
<select class="form-control" asp-for="Priority" asp-items="@priorityList" disabled></select>
Die folgenden nicht. Das Attribut disabled
erscheint nicht auf der Seite Quelle für die gerenderte Seite:
@{ string disabled = Model.CaseMode == Mode.Active ? "" : "disabled"; }
<select class="form-control" asp-for="Priority" asp-items="@priorityList" @disabled></select>
Auch auch folgenden nicht den <select>
Tag nicht deaktiviert.
<select class="form-control" asp-for="Priority" asp-items="@priorityList" @((Model.CaseMode == Mode.Closed) ? "disabled" : "")></select>
Ich gehe davon aus das Problem hat mit dem Tag Helfer Verarbeitung des <select>
Tag, bevor der String-Ersetzung in der Vorlage erfolgt zu tun. Kann jemand vorschlagen, wie ich dieses Element bedingt deaktivieren kann, ohne zwei getrennte Elemente in einer if else
Struktur zu rendern?
Danke:
ich es von hier realisiert. Dies ist additiv zu dem vorhandenen "
Ja, es ist additiv. Beachten Sie, dass Sie die Reihenfolge ändern können, in der die Tag-Helfer aufgerufen werden, indem Sie die Order-Eigenschaft überladen (niedriger wird früher ausgeführt), aber es ist hier nicht erforderlich, da keine Kollision vorliegt. –
Danke, ich habe eine modifizierte Version erstellt, mit der ich eine Enum von Active, ReadOnly oder Disabled übergeben kann. Wenn ich die Methode 'Process' erstellte, enthielt Studio einen Aufruf von' base (context, output) '. Weißt du, ob das unbedingt erforderlich ist? –