MV3输入验证 - IE8& IE9表现不同

时间:2011-06-21 07:03:47

标签: asp.net-mvc-3 data-annotations client-side-validation

我正在使用DataAnnotations来验证MVC3应用程序上的输入字段。我正在使用正则表达式验证。 我在IE8和UI的UI上获得了验证消息。 IE9。 但是,即使客户端验证失败,我也会注意到保存按钮的不同之处。 IE9让我在客户端。 然而,在IE8上,控件转到控制器动作,我必须有一个控制器端TryValidateModel,以便验证错误。

有谁知道为什么IE8正在进行服务器往返?

编辑: 添加代码。这进入了cshtml。

    @using (Html.BeginForm("Person", "Account", FormMethod.Post))
    {
       <span class="resultError" id="resultError">
       @Html.ValidationMessageFor(model => model.Name, "Name should not contain special characters")  
       </span>
       <table>
         <tr>
          <td class="editor-label">Name:
          </td>
          <td class="editor-field">@Html.EditorFor(model => model.Name)
          </td>
        </tr>
       </table>
       <input type="submit" name="btnKey" value="Save" />
    }

这是使用DataAnnotation的分部类。 Person类由EF驱动。所以我必须创建一个元数据类来进行验证。

    [MetadataType(typeof(personMetadata))]
    public partial class person: EntityObject
    {
      public class personMetadata
      {
        [Required]
        [RegularExpression(@"[A-Za-z0-9]+")]       
        public object Name { get; set; }
      }
    }

编辑:添加引用的javascript文件。         “〜/脚本/ jquery.validate.min.js”         “〜/脚本/ jquery.validate.unobtrusive.min.js”

1 个答案:

答案 0 :(得分:4)

在我的情况下,这很像你的,我发现更新jquery.validate.js是要走的路。有关IE 7,8和9的jquery验证版本1.8.0有reported bug

获得最新版本后,一切都开始起作用了。