模型绑定不适用于复杂对象

时间:2014-07-07 00:24:06

标签: asp.net-mvc model-binding

简介

我正在使用ASP.NET MVC应用程序。我有一对用于提交数据的控制器操作和相应的视图:

RequestsController.cs

public class RequestsController : Controller
{
    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(ViewModel data)
    {
        return View(data);
    }
}

ViewModel.cs

public class ViewModel
{
    public int Data { get; set; }
}

Create.cshtml

@model Request

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

@using (Html.BeginForm())
{
    @Html.ValidationSummary(excludePropertyErrors: true)

    <fieldset>
        <legend>Request</legend>

        @Html.EditorForModel()

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

问题

提交表单并填充其字段后,调用Create(ViewModel)并将data参数设置为null

1 个答案:

答案 0 :(得分:0)

问题原来是框架不喜欢Create中的参数与ViewModel的属性相同。这可以通过重命名参数或属性来解决。