У меня есть приложение MVC 3, и я пытаюсь отобразить пользовательскую ошибку проверки.Обычные ошибки проверки, которые генерируются моделью, т.е. Обязательные, отображаются на странице.Теперь я проверяю, существует ли пользователь, и если да, добавив сообщение об ошибке:
if (userExists)
ModelState.AddModelError("UserName", UserManagementResources.UserAlreadyExistsText);
return View(model);
В представлении у меня есть сводка проверки и Html.ValidationMessage ("UserName"), но ни одно из них не отображаетсяОшибка.Я успешно использовал это на других страницах.Единственное отличие этой страницы в том, что она использует сценарии проверки RequiredIf.http://blogs.msdn.com/b/simonince/archive/2011/02/04/conditional-validation-in-asp-net-mvc-3.aspx
Любые идеи, как решить эту проблему, приветствуются.Спасибо.
Редактировать
Я возвращаю сообщение проверки через удаленную проверку.Если я смотрю, что делает сеть, она возвращает сообщение об ошибке, но оно все равно не отображается в представлении.
[Required]
[DataType(DataType.EmailAddress)]
[Remote("IsUserAvailable", "Validation", ErrorMessage = "Ein Benutzer mit dieser Email existiert bereits.")]
[Display(Name = Resources.EmailText, ResourceType = typeof(Resources))]
public string Email
{
get { return User.Email; }
set { User.Email = value; }
}
Представление:
@Html.LabelFor(u => u.Email, Resources.Email + " (Login) *")
@Html.EditorFor(u => u.Email)
@Html.ValidationMessageFor(u => u.Email)
<br clear="all" />
Удаленный контроллер проверки:
public class ValidationController : Controller
{
public JsonResult IsUserAvailable(string Email)
{
bool userExists;
using (var userModel = new UserManagementModel())
{
userExists = userModel.UserExists(Email);
}
if(userExists)
return Json(UserManagementResources.UserAlreadyExists, JsonRequestBehavior.AllowGet);
else
return Json(true, JsonRequestBehavior.AllowGet);
}
}