【问题标题】:How to include validations for internal models in MVC 3?如何在 MVC 3 中包含内部模型的验证?
【发布时间】:2011-10-28 04:37:48
【问题描述】:

在我的项目中,我们有一些编辑器模板可以呈现如下所示的 html:

<table>
   <tr>
       <td><image src="/SIIJYP/Content/Images/lupa.bmp" id="@(controlId)img"/></td>
       <td>
           @Html.Hidden("Id", Model.Id)
           @Html.TextBox("Fullname", Model.Fullname, new {@readonly="readonly"})
       </td>
   </tr>
</table>

这看起来像一个文本框旁边的小图像,它用于允许从人员搜索弹出窗口中搜索和选择一个人。

使用此模板的模型具有以下属性:

public class MyModel
{
    [Required(ErrorMessage="This value is required")]
    [UIHint("PeopleSearch")]
    public Person Responsible { get; set;}
}

一切正常,模板正确呈现,值已发布,模型已验证等。但是,当用户不选择人员并发布时,不会显示预期的错误消息“此值是必需的”。

当用户提供任何值时,我们应该如何修改我们的模板以显示消息?

更新:人物模型定义:

public class Person
{
    public long Id { get; set;}
    public string Fullname { get; set;}
}

我需要一种方法,允许我使用责任属性中的 RequiredAttribute 来验证:Id 和 Fullname 都有值,否则在文本框下方显示错误消息。

【问题讨论】:

  • 您说模型已验证,但又说错误消息未显示。那么是客户端验证失败还是服务器端验证失败?或两者?你只是错过了@Html.ValidationMessage吗?
  • 服务器中ModelState.IsValid为False但不显示错误信息

标签: .net asp.net-mvc-3 validation


【解决方案1】:

如 cmets 中所述,您忘记放入 html

@Html.ValidationMessageFor(model => model.Responsible.Name)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2011-12-06
    • 1970-01-01
    相关资源
    最近更新 更多