c# - tutorial - asp.net razor



Kontrollkästchen deaktiviertes Attribut in ASP.NET MVC (2)

Dies funktioniert nicht, da <input disabled="anything" /> zu einem deaktivierten Steuerelement führt. Sie müssen nur eine @ disabled-Eigenschaft haben, wenn sie deaktiviert werden soll.

Versuchen Sie etwas wie folgt:

@Html.CheckBoxFor(modelItem => item.Selected, item.Selectable ?  (object)new {} :  (object)new { @disabled = "disabled })

Beachten Sie, dass Sie möglicherweise nach (object) umwandeln müssen.

https://ffff65535.com

Mein ViewModel hat eine ausgewählte und auswählbare Eigenschaft. Beide sind boolesch. Ich möchte, dass meine Ansicht eine Checkbox hat, die aktiviert ist, wenn wählbar wahr ist und deaktiviert, wenn wählbar falsch ist. Was ist die richtige Rasierersyntax, um dies zu erreichen?

Ich habe den folgenden Code in einer Liste von Elementen in einer Tabelle ausprobiert. Jede Zeile kommt mit einem deaktivierten Kontrollkästchen zurück, unabhängig vom auswählbaren Wert.

 @Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable })

Entschuldigung, meine vorherige Antwort war falsch.

Das Eingabeelement wird deaktiviert, sobald das Attribut deaktiviert wird. Es spielt keine Rolle, ob der Wert wahr oder falsch ist. In HTML können Sie deaktiviert nicht auf false setzen.

Daher müssen Sie das deaktivierte Attribut nur dann setzen, wenn die Bedingung gültig ist.

etwas wie:

object attributes = null;
if (!item.Selectable)
{
    attributes = new { disabled = "disabled"};
}
@Html.CheckBoxFor(modelItem => item.Selected, attributes)




razor