Case désactivé attribut dans ASP.NET MVC
Mon ViewModel est une propriété de certains et de sélection. Les deux sont de type boolean. Je voudrais que mon point de vue, avoir une case à cocher est activée lorsque sélectionnable est vrai et désactivé lorsque sélectionnable est faux. Quelle est la bonne syntaxe razor pour accomplir cette ?
J'ai essayé le code ci-dessous sur une liste d'éléments dans un tableau. Chaque ligne est de retour avec une case à cocher désactivée indépendamment de choix de valeur.
@Html.CheckBoxFor(modelItem => item.Selected, new { @disabled = !item.Selectable })
- Question: qu'est-Ce que
item
? Je vois sur votre lambda que vous avezmodelItem => item.Selected
, mais estitem
indépendant du modèle lui-même? Ou peut-être vous avez voulu dire,modelItem => modelItem.Selected
?
Vous devez vous connecter pour publier un commentaire.
Il n'est pas facile à réaliser avec un
if
condition à l'intérieur de la méthode d'assistance parce que tous les majorations ci-dessous rendra une désactivé chechbox.Cela devrait fonctionner dans le rasoir. Simple Si la condition et le rendu de ce que vous voulez.
Vous pouvez envisager la rédaction d'une assistance html personnalisée qui rend le balisage pour cela.
new { @disabled = "" }
comme<input type="checkbox" disabled />
est valide et utilisé par le W3C dans leurs échantillons.Cela ne marchera pas, parce que
<input disabled="anything" />
entraînera un contrôle désactivé. Vous avez besoin d'avoir seulement un @handicapés de la propriété quand il doit être désactivé.Essayer quelque chose comme cela:
Remarque que vous pourriez avoir besoin de jeter à
(object)
Désolé, ma réponse précédente était faux.
À l'entrée de l'élément sera désactivé dès qu'il pénètre à l'attribut disabled. Il n'a pas d'importance si la valeur est true, false. En HTML, vous ne pouvez pas définir de désactivé à false.
De sorte que vous aurez à définir le désactivé attribut uniquement lorsque la condition est valide.
quelque chose comme: