2012-06-01 55 views
1

我面臨一個問題,當我有一個複雜的模型時,如果我提交表單,它不會給我所有模型屬性的所有值,在下面的示例中,我我沒有得到回gridModel屬性:MVC在表單發帖時提交多個對象在模型中

型號

public class InventoryModel { 
    public GridModel GridModel { get; set; } 
    public Int32 UserKey { get; set; } 
} 

public class GridModel { 
    public String GridId { get; set; } 
    public String GridName { get; set; } 
    public List<String> columns { get; set; } 
} 

控制器

public ActionResult Index(){ 
    InventoryModel model = new InventoryModel(); 

    model.UserKey= 20014; 
    model.GridModel = new GridModel(); 
    model.GridModel.GridId = "jqgInventory"; 
    model.GridModel.GridName = "Inventory Grid"; 
    return View(model); 
} 

[HttpPost] 
public ActionResult Index(InventoryModel model){ 
    Int32 userId = model.UserKey; // This has a value 
    String gridId = model.GridModel.GridId; // This doesn't have a value 
    String gridName= model.GridModel.GridName; // This doesn't have a value 
} 

查看

@model InventoryModel 
@using (Html.BeginForm()) { 
    @Html.TextBoxFor(m => m.UserKey, new { @class = "w200" }) 
    @Html.TextBoxFor(m => m.GridModel.GridId , new { @class = "w200" }) 
    @Html.TextBoxFor(m => m.GridModel.GridName, new { @class = "w200" }) 

    <input type="submit" value="Submit" /> 
} 

任何建議請將不勝感激。

感謝, 阿拉

+0

不好意思啊這是MVC4 –

+0

研究建立一個自定義的模型綁定模型映射到您的視圖模型。 –

回答

3

你也可以使用一個ViewModel,而不是實際的模型。這將是一個更平坦的類,它專門反映了View的數據。

public class InventoryViewModel{ 
    Int32 UserKey {get; set; } 
    public String GridId { get; set; } 
    public String GridName { get; set; }   
} 

你的控制器可以根據需要

相關問題