1
其他類似的問題,我昨天詢問here稍作修改。另一個模型綁定問題
這裏是我的模型
public class InfoModel
{
public NameModel Name { get; set; }
public string Phone { get; set; }
}
public class NameModel
{
public string Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public List<SelectListItem> Titles
{
get
{
var list = new List<SelectListItem>();
list.Add(new SelectListItem() { Text = "Mr.", Value = "Mr." });
list.Add(new SelectListItem() { Text = "Mrs.", Value = "Mrs." });
list.Add(new SelectListItem() { Text = "Ms.", Value = "Ms." });
return list;
}
}
public NameModel()
{
}
public NameModel(string first, string last)
{
this.FirstName = first;
this.LastName = last;
}
}
然後我有第一視圖ShowName.cshtml如下
@model MyTestApp.Models.NameModel
@Html.DropDownListFor(m => m.Title, Model.Titles, Model.Titles)
<br />
@Html.LabelFor(m => m.LastName)
@Html.TextBoxFor(m => m.LastName)
<br />
@Html.LabelFor(m => m.FirstName)
@Html.TextBoxFor(m => m.FirstName)
上述視圖中ShowInfo.cshtml用作下面
@model MyTestApp.Models.InfoModel
@using (Html.BeginForm())
{
@Html.Partial("ShowName", Model.Name)
<br />
@Html.LabelFor(m => m.Phone)
@Html.TextBoxFor(m => m.Phone)
<br />
<input type="submit" value="Submit Info" />
}
當用戶提交任何信息時,下面的控制器方法稱爲
[HttpPost]
public ActionResult ShowInfo(InfoModel model)
{
...
}
問題是手機很好,但名稱爲空。如果我將@Html.Partial("ShowName", Model.Name)
更改爲@Html.EditorFor(m => m.Name, "ShowName")
,則標題的下拉菜單顯示爲編輯框
正如我的問題所述,使用編輯器模板的問題是它不顯示List標題作爲下拉列表。我想怎麼做呢? –
2011-12-22 14:56:34
@palmsnow,它爲什麼不能正確顯示?它顯示的是什麼?你似乎也在使用一些錯誤的過載。你應該使用'@ Html.DropDownListFor(m => m.Title,Model.Titles)'。這應該很好。 – 2011-12-22 15:00:03
我也嘗試過其他重載。該下拉菜單顯示爲編輯框。可能是因爲它的集合或什麼? – 2011-12-22 15:03:05