我试图用MVC4剃须刀找到我,我被困在这个简单的问题。
当我使用@ Html.DisplayFor模型总是发回为NULL,但是当我使用@ Html.TextBoxFor这个模型是完全填充的,我缺少什么?
提前致谢
解决方法
这是许多人在asp.net mvc框架中错过的常见问题。不只是帮助者的区别,例如HiddenFor,DisplayFor,TextBoxFor – 但是框架如何设置自动收集和验证这些输入。魔术都是用HTML5的data- *属性完成的。您将注意到,在查看生成的输入标记时,将以数据val,数据val需要的形式存在一些额外的属性,也可能会出现类型的一些附加数据属性,例如数字将是数据val -数。
这些数据属性允许jQuery扩展jquery.validate.unobtrusive.js解析DOM,然后确定哪些字段验证或生成错误消息。
发布的数据的实际收集反映在name属性中。这是应该映射到c#或vb [HttpPost]方法中的模型。
当您要提供用户不需要注意的发布数据时使用HiddenFor。
当要显示记录但不允许编辑它们时,请使用DisplayFor。
当您想允许用户输入或允许用户编辑字段时,使用TextBoxFor。
编辑
“这个观点的目的是让用户在将数据提交到数据库之前查看数据。有什么想法可以实现吗?”
您可以用HiddenFor和DisplayFor的二重奏来完成此任务。使用HiddenFor使值可以被发布,并且DisplayFor显示这些值。