2017-11-26 7 views
0

Ich versuche, eine Ansicht zu machen, oder nicht, je nach bearbeitet werden kann, wie auf sie zugegriffen wird, und ich schrieb den folgenden Code:Wie das disabled-Attribut basiert auf Bedingung in .NET hinzufügen

var isDisabled = ""; 
if (!ViewBag.isEditable) 
{ 
    isDisabled = "disabled"; 
} 

... 

<input class="form-control" asp-for="something" disabled="@isDisabled" /> 

Ich dachte, Dies könnte funktionieren, aber anscheinend ist die einzige gültige Möglichkeit für eine Eingabe, nicht deaktiviert zu sein, das deaktivierte Attribut zu haben, disabled="" deaktiviert es immer noch (was ehrlich dumm ist).

Wie kann ich das umgehen? Kann ich das Attribut auf andere Weise hinzufügen?

Antwort

0

Einer der schnellen Weg ist das Attribut als Text übergeben. Falls es nicht editierbar ist, wird es eine leere Zeichenkette sein, also keine Auswirkung. Beispiel

 isDisabled = "disabled=\"disabled\""; 

     <input class="form-control" asp-for="something" @isDisabled /> 

Ich gehe davon aus, dass Sie das isDisabled Feld wie dieses ist

 ViewBag.isDisabled = isDisabled 
+0

Das Problem Ihrer Ansicht Tasche setzen @isDisabled als Ganzes Attribut angesehen wird nicht als C# -Code eingefügt. Das habe ich auch versucht, bevor ich gefragt habe. – Megid

+0

@Megid überprüfen Sie bitte meine bearbeitete Antwort. – Devesh

+0

Eigentlich isDisabled ist nur eine lokale Variable in der Ansicht. Warum sollte ich es in ViewBag einfügen? – Megid

Verwandte Themen