Я делаю MVC EditorTemplate для типа данных bool, который будет отображать раскрывающийся список с параметрами True или False, И установить для выбранного значения значение Model.
DDL рендерится, но для него не установлено значение модели.
Что мне здесь не хватает?
Вот мой код просмотра:
<%:Html.EditorFor(model => model.Association.Active, "Bool")%>
Вот мой код шаблона:
<%@ 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>
Я немного украсил код, так что я использую REAL SelectListItems вместо строк. Но это все еще не работает. Теперь я получаю DDL из двух строк, которые говорят «System.Web.MVC.SelectListItem» вместо «true» и «false». Почему это происходит здесь?
<%@ 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>