我在我的控制器中有这个,它被发布到表单提交。
[HttpPost]
public ActionResult Add(OrderDetailsViewModel thisWindowModel)
{
if (!ModelState.IsValid)
{
return View(thisWindowModel);
}
当模型staie无效并且我将模型返回到视图时,我得到一个对象引用没有设置指向此行的异常:
<h2>Order Details:@Model.Style.Name</h2>
当我进入httppost方法时,我已经检查了“thisWindowModel”,并且样式确实在那里为空....但为什么要这样做?/如何修复?
更新
我现在也尝试添加hiddenfor,甚至将我的模型更改为只使用stylename作为字符串,但它仍然失败会引发空引用异常。
@if(Model==null)
{
<h2>model null</h2>
}else{
if(Model.StyleName==null)
{
<h2>model style null</h2>
}
<h2>Order Details:@Model.StyleName</h2>
}
在最后一次'}
'
答案 0 :(得分:1)
,为您的模型项添加Html.HiddenFor()
。如你所知,它不知道如何在回发时重建模型时重新创建Model.Style.Name
。
答案 1 :(得分:1)
您必须在表单帖子中发布@Model.Style.Name
,您刚刚在标题标记的视图中使用它,但您需要以形式发布所有模型属性,否则会发布null
在表单中使用@Html.HiddenFor(x=>x.Style.Name)
,以便在表单中发布此属性值。