Я не могу получить ненавязчивую проверку для работы с использованием пользовательских viewModels, представляющих абстракции моих классов, сгенерированных EF.viewmodels и ненавязчивая проверка mvc3
Как я могу, проверка не увольняется при отправке формы для объекта Name
в моем городском образовании. Я считаю, что это имеет какое-то отношение к различным моделям в представлениях, но я просто не знаю, как все это работает.
Обратите внимание. У меня есть все последние скрипты проверки, и, наблюдая за страницей с помощью firebug и firequery, я вижу, что скрипт добавляет и удаляет класс, действительный с входа, но тот, что вход не является частью коллекции проверки.
Большое спасибо заранее.
Мои ViewModel:
/// <summary>
/// Represents abstraction of the City View that also serves in
/// data binding between the City View and the City Model.
/// </summary>
public class CityViewModel
{
/// <summary>
/// Gets or sets the city.
/// </summary>
/// <value></value>
public City City { get; set; }
/// <summary>
/// Gets or sets the collection of states.
/// </summary>
/// <value></value>
public ICollection<State> States { get; set; }
}
мой взгляд CreateCity:
@model OzFarmGuide.ViewModels.CityViewModel
@{
ViewBag.Title = "Create a new city";
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<h2>
Create a new city</h2>
@using (Html.BeginForm())
{
@Html.EditorFor(model => model.City, new { States = Model.States })
<div class="entity-actions">
<input type="submit" value="Create" />
|
@Html.ActionLink("Back to List", "Cities")
</div>
}
Мой шаблон Редактор: (_ValidationPartial содержит только ссылки сценария)
@model OzFarmGuide.Models.City
@Html.Partial("_ValidationPartial")
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.State)
</div>
<div class="editor-field">
@Html.DropDownList("StateId",
new SelectList(ViewBag.States as System.Collections.IEnumerable,
"StateId", "Name",
Model.StateId))
</div>
@Html.HiddenFor(model => model.CityId)
В соответствии с поручением здесь сценарии Я включил:
<script src="@Url.Content("http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
Что Js скрипты вы включили? У меня такое ощущение, что jquery.unobtrusive-ajax.js не включен. –
@amit_g: У меня не было этого скрипта, но насколько мне известно, это было необходимо только для сообщений ajax. Я добавил ссылку, но, к сожалению, изменений нет. –
Не могли бы вы точно указать, какие скрипты включены? Вероятно, они будут в _AdminLayout.cshtml. –