Проверка входа MV3 - IE8 и IE9 ведут себя по-разному - PullRequest
1 голос
/ 21 июня 2011

Я использую DataAnnotations для проверки полей ввода в приложении MVC3.Я использую проверки регулярных выражений.Я получаю сообщения проверки в пользовательском интерфейсе для IE8 и 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, на которые имеются ссылки."~ / Scripts / jquery.validate.min.js" "~ / Scripts / jquery.validate.unobtrusive.min.js"

1 Ответ

4 голосов
/ 22 июня 2011

В моем случае, который очень похож на ваш, я обнаружил, что обновление jquery.validate.js было подходящим способом.Существует сообщение об ошибке в версии 1.8.0 проверки jquery о IE 7, 8 и 9.

После получения последней версии все начало работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...