Kontrollkästchen deaktiviertes Attribut in ASP.NET MVC
Meinem ViewModel eine Eigenschaft von ausgewählten und wählbar. Beide sind boolean. Ich möchte, dass meine Ansicht ein Kontrollkästchen, das aktiviert wird, wenn Sie wählbar ist wahr, und deaktiviert, wenn das wählbar ist falsch. Was ist die richtige razor-syntax um dies zu erreichen ?
Habe ich versucht, den code, der unten auf einer Liste von Elementen in einer Tabelle. Jede Zeile kommt zurück mit einer checkbox deaktiviert, unabhängig von wählbaren Wert.
@Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable })
Kommentar zu dem Problem
Frage: Was ist
item
? Ich sehe auf deinem lambda, die Sie haben modelItem => posten.Ausgewählt
, aber item
unabhängig von dem Modell selbst? Oder vielleicht haben Sie gedacht, zu sagen, modelItem => modelItem.Ausgewählt
? InformationsquelleAutor der Frage Bill Greer | 2014-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht leicht zu erreichen, das mit einer
if
Zustand innen die helper-Methode, weil Sie alle unterhalb der Markierungen wird das Rendern einer deaktiviert chechbox.Sollte diese Arbeit in den Rasierer. Einfache If-Bedingung und-rendering, was Sie wollen.
Können Sie prüfen, schriftlich eine benutzerdefinierte html-helper, das macht die richtige markup für dieses.
InformationsquelleAutor der Antwort Shyju
Das wird nicht funktionieren, weil
<input disabled="anything" />
wird in einem deaktivierten Steuerelement. Sie müssen nur eine @disabled-Eigenschaft, wenn es deaktiviert werden soll.Probieren Sie etwas wie dieses:
Beachten Sie, dass müssen Sie möglicherweise zu werfen, um
(object)
InformationsquelleAutor der Antwort Daniel Little
Sorry, meine Vorherige Antwort war falsch.
Dem input-element wird deaktiviert sein, sobald es wird dem Attribut disabled. Es spielt keine Rolle, wenn der Wert true ist, false. In HTML kann man nicht einstellen disabled auf false.
So kann man dann das disabled-Attribut nur, wenn die Bedingung gültig ist.
etwas wie:
InformationsquelleAutor der Antwort Pbirkoff