0

ネストされたプロパティに奇妙な問題があります..これが設計によるものかどうかわかりませんか? 私がする時

@Html.EditorFor(model => model.Name)

投稿が機能し、モデルが設定されます。私が代わりに行うとき

@Html.EditorFor(model => model.Detail.Name)

投稿でmodel.Detail.Nameがnullです..これが機能するために何か特別なことをする必要がありますか?

4

2 に答える 2

1

それはうまくいくはずです。再現できません。

モデル:

public class ModelClass 
{ 
    public string Name { get; set; }
    public DetailClass Detail { get; set; }
}

public class DetailClass 
{
    public string Name { get; set; } 
}

コントローラ:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        var model = new ModelClass
        {
            Name = "model name",
            Detail = new DetailClass
            {
                Name = "detail name"
            }
        };
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(ModelClass model)
    {
        return Content(
            string.Format(
                "name: {0}, detail.name: {1}", 
                model.Name, 
                model.Detail.Name
            )
        );
    }
}

意見:

@model ModelClass

@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Name)
    @Html.EditorFor(x => x.Detail.Name)
    <button type="submit">OK</button>
}

2 つのプロパティが正しくバインドされています。

于 2012-04-05T05:56:20.863 に答える