Je crée un MVC EditorTemplate pour le type de données booléen qui rendra une liste déroulante avec les options Vrai ou Faux, ET définira la valeur sélectionnée sur la valeur du modèle.en essayant de faire un MVC EditorTemplate pour un booléen qui rend un DDL avec Vrai ou Faux
Le rendu DDL n'est pas défini sur la valeur du modèle.
Qu'est-ce qui me manque ici?
Voici mon code de vue:
<%:Html.EditorFor(model => model.Association.Active, "Bool")%>
Voici mon code de modèle:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<bool>" %>
<%
string[] values = new string[2];
values[0] = "True";
values[1] = "False";
%>
<div class="editor-row">
<div class="editor-label">
<%= Html.LabelFor(model => model)%>
</div>
<div class="editor-field">
<%= Html.DropDownListFor(model => model, new SelectList(values, Model))%>
<%= Html.ValidationMessageFor(model => model) %>
</div>
</div>
J'embelli un peu le code de sorte que j'utilise REAL SelectListItems au lieu de chaînes. Mais cela ne fonctionne toujours pas. Maintenant, je reçois un DDL de deux chaînes qui disent "System.Web.MVC.SelectListItem" au lieu de "true" et "false". Pourquoi cela arrive-t-il ici?
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<bool>" %>
<%
SelectListItem item1 = new SelectListItem();
item1.Text = "True";
item1.Value = "True";
SelectListItem item2 = new SelectListItem();
item2.Text = "False";
item2.Value = "False";
if (Model == true)
{
item1.Selected = true;
item2.Selected = false;
}
else
{
item1.Selected = false;
item2.Selected = true;
}
List<SelectListItem> items = new List<SelectListItem>();
items.Add(item1);
items.Add(item2);
%>
<div class="editor-row">
<div class="editor-label">
<%= Html.LabelFor(model => model)%>
</div>
<div class="editor-field">
<%= Html.DropDownListFor(model => model, new SelectList(items))%>
<%= Html.ValidationMessageFor(model => model) %>
</div>
</div>
Nathan, l'esprit vous regardant le deuxième exemple de code I posté? La manière originale que j'ai écrite fonctionne avec votre correctif, mais il n'y a pas de valeur = "true" et value = "false" dans les balises
@Blackcoil en HTML s'il n'y a pas d'attribut value sur un élément '', alors innerText de l'élément est traité comme la valeur. –
J'ai compris, merci! – Blackcoil