在我的一项行动中,我得到了这个:
ViewBag.Val = "a val";
View();
相关视图:
@{
Model.Attr = ViewBag.Val;
}
异常详情:
System.NullReferenceException: Object reference not set to an instance of an object.
...
Line 27: Model.Attr = ViewBag.Val;
这是造成麻烦的真正原因吗,如果它是如何将值传递给视图并将模型属性设置为该值。
编辑:
我已经记录了执行,分配工作正常:
采取行动:
var Obj = MyModel();
Obj.Attr = 123;
return View(Obj);
看法:
<p>@Model.Attr</p> // shows 123
但在接收 MyModel 的发布操作中,MyModel.Atrr 为 0。
为什么会发生这种情况以及如何解决它。
编辑 2
视图绑定到的模型是预期将在发布操作上处理的模型,并且是我要在视图或上一个(获取)操作上分配值的模型。我只想从'get action'传递一个值'a'来查看,分配'model.a' ='a',然后在'post action'上处理'model'(附加'a') .
我从日志中可以看出,绑定到视图的模型和从“获取操作”传递给视图的模型是不同的实例。