如何在mvc ajax表单中使用EnterpriseLibrary验证而不是DataAnnotations属性?

时间:2013-07-03 13:55:32

标签: asp.net-mvc asp.net-mvc-4 data-annotations enterprise-library

我有这样的模型

using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

namespace MvcValidationTest.Models
{ 
    public class Person
    {

        [NotNullValidator(MessageTemplate = "FullName Is required!!!")]
        public string FullName { get; set; }
}

当我像这样使用Html.BeginForm()时

 @using (Html.BeginForm()) {

<fieldset>
    <legend>Person</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.FullName )
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.FullName )
        @Html.ValidationMessageFor(model => model.FullName )
    </div>
        <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}

当我提交表单并且FullName为空时... ValidationMessage显示给我。 但是当我像这样使用Ajax.BeginForm()时

 @using (Ajax.BeginForm("Create", "Home", new AjaxOptions { HttpMethod = "post" }))
  <fieldset>
    <legend>Person</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.FullName )
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.FullName )
        @Html.ValidationMessageFor(model => model.FullName )
    </div>
        <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}

当我提交表单并且FullName为空时... ValidationMessage不向我显示。

0 个答案:

没有答案