我在使用ViewModel时将值返回给控制器时出现问题。MVC ViewModel返回ArgumentNullException
为了清楚起见,我简化了下面的代码,其中原件有更多的字段。
加载页面时,隐藏字段中的值与预期值相同。但是,当提交表单时,字段中的值不会被发送,而是我得到一个ArgumentNullException。
请你能告诉我我做错了什么。
查看
@model Project.Models.SCView
@using (Html.BeginForm("ScorecardEdit"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.FV.ID)
<input type="submit" value="Save" />
}
型号
public class FixView
{
public int ID { get; set; }
[DisplayFormat(DataFormatString = "{0:ddd dd/MM/yyyy}")]
public DateTime MatchDate { get; set; }
}
public class SCView
{
public FixView FV { get; set; }
public SCView()
{
this.FV = new FixView();
}
}
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ScorecardEdit(SCView ReturnSC)
{
}
您并未将SCView发布到服务器。你发布一个整数。 – mason
@mason谢谢,但我不明白。这个人[链接](http://stackoverflow.com/questions/27191691/viewmodel-returns-null-on-postback-mvc-5)能够使用相同的格式更新属性没有错误。 – Xtravia9
尝试在视图中添加日期输入并将您的操作方法更改为接受“FixView”而不是“SCView”。 – mason