【发布时间】:2014-04-09 08:05:51
【问题描述】:
我需要修改网站上的验证消息。原因是(也许是坏的)我们走捷径。我们将编写一个自定义 ModelBinder。不过,我会暴露我的问题。
在视图文件中,我们添加了几个隐藏输入字段,并使用模型绑定器,在控制器中,我们得到了两个实体(一个是视图文件的模型,另一个是通过隐藏输入字段创建的)
<input type="text" name = "FromHiddenInputs.Name" value="" />
<input type="hidden" name ="FromHiddenInputs.Id" value="0" />
请注意,FromHiddenInputs 不是我的@Model 的一部分。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(Entity MyModel, SecondEntity FromHiddenInputs)
{
if (ModelState.IsValid){
在处理我的表单发布结果的方法上处于调试模式。当我查看 ModelState 时,我看到两个实体都有一些验证错误。
所以在视图文件中,使用这段代码,我可以显示我的验证消息:
@Html.ValidationMessageFor(model => model.MyProperty)
或
@Html.ValidationMessage("FromHiddenInputs.Name", "*")
所以我的问题如下,ModelState 的这个 Errors 和 Validation 是如何从 ActionResult 传递到 viewfile 的?
【问题讨论】:
标签: c# entity-framework asp.net-mvc-4 razor