2011-05-12 95 views
3

這似乎很簡單,但我失去了一些東西:ASP.NET MVC窗體數據未發佈

型號:

public class MainModel 
{ 

    public SubModel oSubmodel = new Submodel(); 

.... 

} 

查看:

@model myApp.Models.MainModel 
@using (Html.BeginForm("Index","Account", FormMethod.Post, new { id = "form"}) 
{ 

    @Html.LabelFor(m => m.oSubmodel.prop1 

    @Html.TextBoxFor(m => m.oSubmodel.prop1 

} 

控制器:

[HttpPost] 
public ActionResult Index(MainModel oModel) 
{ 
     .... 
     string prop = oModel.prop <-----------ok 
     string prop1 = oModel.oSubmodel.prop1 <----------null 
    } 

m.oSubmodel.prop1數據顯示正確在視圖中。當數據回傳給控制器時,MainModel值正確傳遞,但是 - 所有子模型值均爲null。

有人提供任何見解?

+0

你的控制器方法是什麼樣的?前段時間我有同樣的問題...看到這個問題:http://stackoverflow.com/questions/5755928/how-to-let-the-post-action-method-take-a-subobject-of-the -original-viewmodel-as-a – fretje 2011-05-12 14:49:44

+0

謝謝 - 我添加了控制器信息。現在看看你引用的問題。但我的要求似乎更容易。我很確定這是我愚蠢的。 – 2011-05-12 16:07:37

+0

您確定這些值實際上是與請求一起傳遞的?你可以用提琴檢查這個... – fretje 2011-05-12 16:15:52

回答

3

對。我的錯。子模型需要暴露財產關閉主模型結合崗位上正常工作:

所以

public class MainModel 
{ 

    public SubModel oSubmodel = new Submodel(); 

.... 

} 

變爲:

public class MainModel 
{ 

    public SubModel oSubmodel { get; set; } 

.... 

} 

然後結合的偉大工程。感謝那些迴應。