1

可能重复:
复杂模型和部分视图 - MVC3 中的模型绑定问题

当属性位于视图中使用的模型中的类中时,您可以将数据从视图传递到控制器吗?

问题是,当提交发生时,我的模型中属于该模型中的一个类的属性似乎没有被填充。不在类中的属性会被填充。只是认为这里存在实例化问题,但看不到前进的道路。

这是模型设置:

namespace AppName.Models
{
    public class SuperModel
    {
        public SuperModel() {
            SubModA = new SubModelA();
        }
        public string myItem1 { get; set; }
        public SubModelA SubModA { get; set; }
    }

    public class SubModelA
    {
        public string mySubAItem1 { get; set; }
    }
}

这是视图:

@model AppName.Models.SuperModel

@{
    ViewBag.Title = "My Page Title";
}

<h2>My Page Title:</h2>

@using (Html.BeginForm("NextController", "NextControllerFolder", new { SuperModel = Model }, FormMethod.Post))
{
    @{
        Model.myItem1 = DateTime.Now.ToShortDateString();
        Model.SubModA.mySubAItem1 = DateTime.Now.ToShortDateString();
    }
    @Html.HiddenFor(m => m.myItem1)
    @Html.HiddenFor(m => m.SubModA.mySubAItem1)

    <p>
        <button name="submit" value="Submit"><b>Continue</b></button>
    </p>
}

这是控制器:

[HttpPost]
public ActionResult NextController(string button, SuperModel model, string returnUrl)
{
    // PROBLEM IS HERE>>>
    ///model.myItem1 has a value equal to the current date
    // model.SubModA.mySubAItem1 is null

    return(model);
}

希望这个问题有意义。希望答案就在眼前!谢谢!

4

2 回答 2

0

替换代码中的以下行

@Html.HiddenFor(m => m.SubModelA.mySubAItem1)

有了这个

@Html.HiddenFor(m => m.SubModA.mySubAItem1)

希望这有帮助!

于 2012-08-12T05:40:33.640 回答
0

尝试这个:

 @Html.HiddenFor(m => m.SubModA.mySubAItem1)

将工作。

于 2012-08-12T04:30:05.343 回答