当所有实体都在TextBox中给出错误时,编辑工作正常

时间:2011-06-07 12:15:49

标签: asp.net-mvc entity-framework

我正在使用带有EF的MVC 3.0 我有一个包含自动增量1的标识列的表。现在我创建了一个仅用于FirstName的编辑视图,LastName和ID将是ReadOnly模式。现在我更改了名字和姓氏,然后按提交按钮,然后它会给我一个错误

  

参数字典包含一个   参数'colID'的null条目   非可空类型'System.Int32'   方法'System.Web.Mvc.ActionResult   编辑(的Int32,   CAFM.Business.Models.TabMasterViewModel)”   在   'CAFM.Web.Controllers.TabMasterController'。   可选参数必须是a   引用类型,可空类型或者是   声明为可选参数。   参数名称:参数

如果我将ID从RedaOnly设置为编辑

@Html.DisplayFor(model => model.ID)

@Html.EditorFor(model => model.ID) 

然后它完美运作。

请提供宝贵的建议!

谢谢, Imdadhusen

1 个答案:

答案 0 :(得分:3)

这很明显。当您将编辑内容发布回服务器时,它不会发布Id,因为Id不在任何HTML控件中 - 它只是一个文本。因此,您无法创建有效的实体进行保存。您必须始终将Id发回(例如在隐藏字段中),并进行一些验证,即Id未被更改,或者该用户仍有权更改记录。