MVC默认模型绑定器返回Null对象

时间:2015-11-03 17:31:09

标签: asp.net-mvc asp.net-mvc-5

我遇到一个问题,默认模型绑定器拒绝绑定到我的对象,这是一个List<>个简单对象。

班级:

public class ReferralHistoryDetail {

    [Key]
    public long Referral_Number { get; set; }
    public Guid QuoteGuid { get; set; }
    public byte ReferralTypeID { get; set; }
    public string Referral_Type { get; set; }
    public DateTime ReferralDateTime { get; set; }
    public string ReferralComments { get; set; }

}

控制器定义:

[HttpPost]
public ActionResult Save(List<ReferralHistoryDetail> details) {

Fiddler的观点:

The view from Fiddler

我在这里做错了什么?

这是通过EditorTemplate以下列方式显示的:

@using (Html.BeginForm("Save", "Home")) {

    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <div class="tab-content">
        <div class="tab-pane fade in active form-horizontal" id="basic">
            @Html.EditorFor(m => m.ReferralHistoryDetail)
        </div>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Save" class="btn btn-default" />
        </div>
    </div>

}

作为NULL传递的值是传递给控制器​​的POST方法的值。默认的模型绑定器无法绑定它。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题。

问题是Html.BeginForm()在主视图中,但它只是回发EditorFor()的内容。

我必须更改我的控制器以接收主视图的对象而不是EditorFor()正在处理的对象,因为Html.BeginForm()存在于主视图中。