Я использую 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"