4
我正在看ASP.NET MVC2並試圖發佈一個複雜的對象使用新的EditorFor語法。Html.DropDownListFor <>和複雜的對象在ASP.NET MVC2
我有一個FraudDto對象有一個FraudCategory子對象,我想從表單中發佈的值設置此對象。
發佈一個簡單的對象不是問題,但我正在努力處理與子對象的複雜對象。
我有以下父FraudDto對象whcih我在表格上結合:
public class FraudDto
{
public FraudCategoryDto FraudCategory { get; set; }
public List<FraudCategoryDto> FraudCategories { get; private set; }
public IEnumerable<SelectListItem> FraudCategoryList
{
get
{
return FraudCategories.Select(t => new SelectListItem
{
Text = t.Name,
Value = t.Id.ToString()
});
}
孩子FraudCategoryDto對象看起來是這樣的:
public class FraudCategoryDto
{
public int Id { get; set; }
public string Name { get; set; }
}
在窗體上,我有以下我想將FraudCategoryDto綁定到下拉列表的代碼。該視圖是類型的ViewPage的:
<td class="tac">
<strong>Category:</strong>
</td>
<td>
<%= Html.DropDownListFor(x => x.FraudCategory, Model.FraudTypeList)%>
</td>
然後我有以下控制器代碼:
[HttpPost]
public virtual ViewResult SaveOrUpdate(FraudDto fraudDto)
{
return View(fraudDto);
}
當窗體發送到服務器,所述欺詐對象的FraudCategory屬性爲null。
有沒有任何額外的步驟,我需要鉤住這個複雜的對象?
這工作: <%= Html.DropDownListFor(X => x.FraudCategory.Id,Model.FraudCategoryList,新的{形式= 「寬度:200像素」})%> 我設置的值子對象。與往常一樣,所有的例子都只適用於簡單的對象。 – dagda1 2010-04-04 13:16:01
啊,這個解決方案很好的呼籲,這完全跳過了我的想法。我正要建議使用存儲庫。它看起來像不會加載類別名稱字段。 – 2010-04-04 13:24:17