我是弗朗西斯,我是新手。關於View和Controller之間發佈的數據,ASP.NET MVC3有問題。我的目標是使用表單來編輯我的數據庫中的特定記錄,然後將其發送回控制器,控制器負責檢查記錄的字段並將它們提交到數據庫中。 通過使用ViewModel將數據從Controller傳遞到View,因此DefaultDataBinding不適用於這種情況。我嘗試了很多方法,我監控了與Fiddler的溝通,但我無法解決我的問題。 Phil Haack描述的方法不起作用,FormCollection也不起作用。通行證嵌套列表來控制使用的ViewModels
這裏有代碼:
的ViewModels:我把它傳遞給視圖中創建一個表。只需顯示名稱和項目名稱(表格列標題)列表。我想返回Id,Month(它們作爲參數正確傳遞並表示表格行標題),最重要的是Items和它們的Id的ActualValue(我的數據庫中有一個關聯表,其中Id,Itemid和Month分別爲鍵)
public class EditViewModel
{
[ScaffoldColumn(false)]
public int Id { get; set; }
[ScaffoldColumn(false)]
public int Month { get; set; }
public string Name { get; set; }
public List<ItemViewModel> ItemList { get; set; }
}
public class ItemViewModel
{
[ScaffoldColumn(false)]
public int ItemId { get; set; }
public string ItemName { get; set; }
public float ActualValue { get; set; }
}
查看:視圖強類型爲ViewModels.EditViewModel並通過提交按鈕發送字段。我必須使用的foreach循環生成的表,因爲我不知道有多少項目有提前
控制器:控制器有更新來自與特定標識和月視圖通過每個KPI。
[HttpPost]
public ActionResult EditMonth(int Id, int Month, //FormCollection kpiValues)
我希望我很清楚,我期待着有一些幫助。非常感謝!
請告訴我你的問題? – Landern 2011-03-24 15:42:32
對不起,摩西,我是新來的,我必須改進我發佈問題的方式。我的問題是「如何將具有未知數量的元素的嵌套列表(在另一個列表中)從強類型View傳遞給Controller?」 – CiccioMiami 2011-03-25 08:04:23