我正在爲bool數據類型製作一個MVC EditorTemplate,它將呈現包含True或False選項的下拉列表,並將所選值設置爲模型的價值。試圖爲呈現DDL的True或False的Bool製作MVC EditorTemplate
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>
彌敦道,你介意看第二個代碼示例我張貼?我編寫的原始方式適用於您的修補程序,但
@Blackcoil如果在''元素上沒有值屬性,那麼元素的innerText被視爲值。 – 2010-10-27 19:55:57
明白了,謝謝! – Blackcoil 2010-10-27 21:19:30