Вызов проверки правильности ввода ASP.NET после использования ValidateInput (false) - PullRequest
0 голосов
/ 29 марта 2012

Когда я кладу руки на специальные символы в полях ввода моей формы, когда я нажимаю кнопку Отправить, все, что я получаю, - это пустая страница, так как ASP.NET обнаружил потенциально вредоносный ввод и выдал ошибку в мой журнал событий,все до достижения действия моего контроллера MVC.

Я бы предпочел вернуть ошибку пользователю, чтобы он не просто получил пустую страницу.Поэтому я хочу использовать ValidateInput (false), а затем вызвать валидатор из моего кода, чтобы я мог отправить ответ.Как вызвать валидатор из действия ASP.NET MVC?

Ответы [ 2 ]

1 голос
/ 30 марта 2012

Я немного запутался с вашим вопросом. Вы ищете код, который выполняет проверку модели?Если да, вы можете сделать это, проверив свойство ModelState.IsValid.Если какая-либо из ваших проверок завершится неудачно, она вернет false и, по вашему мнению, вы увидите сообщения об ошибках.Вы также можете указать несколько пользовательских сообщений об ошибках из вашего метода действия, если вы хотите это сделать.

[HttpPost]
public ActionResult LogOn(LogOnModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
      //Model validation is successful. Proceed to other stuff

      //If you want to return some custom error message, do like this
      ModelState.AddModelError("", "The user name is deactivated");

    }
 return View(model);
}
0 голосов
/ 30 марта 2012

Хотите проверить ввод на стороне сервера?

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

[RegularExpression("your regex", ErrorMessage = @"please check your input .... ")]
public string MyInput { get; set; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...