Я пытаюсь создать некоторую добавочную форму объекта категории с ненавязчивой проверкой на стороне клиента.asp.net mvc 3 unobstrusive validation issue
Вот моя сущность:
public class Category
{
public Int32 Id { get; set; }
[DisplayName("Alias")]
[Required(AllowEmptyStrings = false, ErrorMessage = "Have to complete")]
[StringLength(100, ErrorMessage = "asdasdasd", MinimumLength = 3)]
public String Name { get; set; }
[DisplayName("Name1")]
[Required(AllowEmptyStrings = false, ErrorMessage = "Have to complete")]
public String DisplayName { get; set; }
[DisplayName("Name2")]
[Required(AllowEmptyStrings = false, ErrorMessage = "Have to complete")]
public String DisplayNameTZK { get; set; }
[DisplayName("Url")]
[DataType(DataType.Url, ErrorMessage = "Url")]
public String Uri { get; set; }
public Guid AddingGuid { get; set; }
public Boolean IsActive { get; set; }
...
}
Вот мое мнение:
@model HSDT.Models.Entities.Category
@{
Html.EnableUnobtrusiveJavaScript();
Html.EnableClientValidation();
}
@using (Html.BeginForm("", "", null, FormMethod.Post, new { id = "addCategoryForm", name = "addCategoryForm" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(false)
<fieldset>
<legend>Category</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DisplayName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DisplayName)
@Html.ValidationMessageFor(model => model.DisplayName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.DisplayNameTZK)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DisplayNameTZK)
@Html.ValidationMessageFor(model => model.DisplayNameTZK)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Uri)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Uri)
@Html.ValidationMessageFor(model => model.Uri)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.AddingGuid)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.AddingGuid)
@Html.ValidationMessageFor(model => model.AddingGuid)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IsActive)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.IsActive)
@Html.ValidationMessageFor(model => model.IsActive)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Теперь я оставил все свои входы Emty и попытались проверить эту форму, чтобы получить ошибки показано в моей модели, используя :
$("#addCategoryForm").validate().valid()
но я получаю true
(и без ошибок), в результате, но должно быть false
, потому что в аннотации данных я добавил атрибут [Required]
для нескольких полей. Что я делаю неправильно?
Спасибо за любой шаг.
EDIT-1
Вот моя конфигурация:
Вот ссылки:
<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
Почему вы вызываете '$ (" # addCategoryForm "). Validate(). Valid()'? представление формы должно подтвердить входные данные. Или есть некоторые недостающие js в вопросе? – Liam
Я открываю свой сайт в google chrome и пишу его в консоли – Maris
Я думаю, что ваш js ошибочен, попробуйте '$ (" # addCategoryForm "). Valid()' – Liam