Нулевые значения при использовании удаленной проверки в MVC3 - PullRequest
2 голосов
/ 19 октября 2011

У меня проблема с удаленной проверкой.

У меня есть модель представления со свойством, к которому я добавил удаленный валидатор, но когда я запускаю форму и ввожу строку в текстовое поле, значение, переданное в контроллер, равно нулю.

Свойство в модели представления выглядит так:

[Required(ErrorMessage = "Enter the host's name")]
[Remote("ValidateHostFullName", "BoardroomBooking", ErrorMessage = "Enter a different name")]
[DisplayName("Host's Name")]
public string HostFullName { get; set; }

Код для валидатора в контроллере выглядит следующим образом:

public ActionResult ValidateHostFullName([Bind(Prefix="BookingReceptionViewModel")]string HostFullName)
{
    if (!HostFullName.Equals("John Smith"))
    {
        return Json(true, JsonRequestBehavior.AllowGet);
    }

    return Json("{0} is not allowed", JsonRequestBehavior.AllowGet);
}

Значение строки для HostFullName отображается как нулевое, независимо от того, что введено в поле. Я пробовал с префиксом Bind и без него, и это не имеет значения.

Я пробовал это на модели, и она работает, кажется, что проблема возникает только при использовании модели представления.

Спасибо

Mark

Ответы [ 2 ]

2 голосов
/ 07 июля 2012

У меня была такая же проблема. Параметр, входящий в ValidateHostFullName(), должен совпадать с именем ввода.

0 голосов
/ 09 декабря 2015

У меня была такая же проблема.Отрисованный элемент управления html НЕ был префиксом имени класса, но в коде удаленной проверки я связал префикс classname.propertyname.Удаление этой привязки решило мою проблему.Или, если префикс только имя свойства, у меня тоже хорошо работает.

...