ASP.NET MVC 4 - 如果视图不包含id的editorfor,则模型id为null

时间:2016-06-23 16:39:46

标签: entity-framework asp.net-mvc-4 nullreferenceexception editorfor

类User.cs,属性user_id。如果我从View中删除了用于user_id的EditorFor,则在Edit视图将结果发布回控制器后,user_id为null。

如果我没有在此视图的视图中放置EditorFor,如何在加载编辑视图后保留user_id值?在这种情况下,编辑操作返回空引用错误。我想在加载View之前以某种方式存储user_id值,然后无论在视图中输入什么我想从先前保存的位置恢复此user_id值并通过此id更新数据库记录。

问题是MVC不希望在视图中看到除EditorFor之外的任何内容。

不接受DisplayFor,TextBoxFor,结果都为null。 HiddenFor不是选择,因为它仍然会将id加载到页面。 EditorFor无法设置为只读。所以我想删除它,但在模型中以某种方式保留user_id。

编辑

看起来TempData不是一个安全的地方。是否可以通过创建一个具有一些附加属性的派生类来完成,其中id可以保留一段时间?关于课程太多了

1 个答案:

答案 0 :(得分:1)

如果您不想在视图中使用它,请使用TempData将其传递给操作。我无法看到你的代码,所以我无法告诉你。