我在使用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