Удаленный валидатор с DropDownList в ASP.NET MVC 3 - PullRequest
0 голосов
/ 14 августа 2011

Я пытаюсь (безуспешно) использовать удаленный валидатор в DropDownList:

// Person.cs
public int PersonID { get; set; }
public string Name { get; set; }

// Card.cs
public int CardID { get; set; }
[Remote("PersonValidation", "Validation", ErrorMessage = "...")]
public int PersonID { get; set; }
public virtual Person Person { get; set; }

// CardController
public ActionResult Create()
{
    ViewBag.PersonID = new SelectList(db.Persons, "PersonID", "Name");
    Card card = new Card();
    return View(card);
} 

// create.cshtml (Card Views)
<div class="editor-label">@Html.LabelFor(model => model.personID, "Person")</div>
<div class="editor-field">
    @Html.DropDownList("PersonID", String.Empty)
    @Html.ValidationMessageFor(model => model.PersonID)
</div>

// ValidationController.cs
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public JsonResult PersonValidation(int id)
{
    Person person = db.Persons.Find(id);
    return Json(person.Cards.Count > 0, JsonRequestBehavior.AllowGet);
}

PersonValidation никогда не запускается. Другие «Удаленные» проверки с вводом текста работают отлично. Я делаю что-то не так или есть проблема с удаленной проверкой DropDownList?

Спасибо!

1 Ответ

0 голосов
/ 14 августа 2011

Валидатор не запускается, потому что вам нужно использовать @Html.DropDownListFor() для создания HTML-элемента с элементами «data-val», который будет проанализирован в ненавязчивых валидаторах.

...