在控制器和视图之间修改实体

时间:2012-09-06 14:02:17

标签: c# asp.net-mvc asp.net-mvc-3

这怎么可能?  Controller View ViewCode

两天的头部撞击。如果有人有一个理智的解释,那就太好了。

请注意,如果删除EditorFor(o => o.DocumentParentID),则在[HttpPost]中收到该值时会更改为0,因此它们与数据库的其他记录匹配

请注意,这些是数据库中的相关记录 enter image description here

2 个答案:

答案 0 :(得分:7)

ID属性的值为6,因为它与路径中的Id参数匹配。似乎默认模型绑定器也在您的网址中查找这些属性。

在StatusClient类中更改操作方法的参数名称或ID属性的名称,它应该可以正常工作。

此外,如果您未在视图中添加EditorFor(o => o.DocumentParentID),则DocumentParentID将不会回发到您的操作方法,您将获得默认值0。

答案 1 :(得分:0)

我不太确定你的要求,但我认为这就是为什么)当EditorFor不在页面上时默认为DocumentParentID?

modelbinder将绑定对象类型的默认值,因此如果已将DocumentParentID定义为Int32,则modelbinder将在帖子上绑定到0。如果DocumentParentID被定义为Int32 ?,那么modelbinder将在帖子上绑定为null。