Создание пользовательской ошибки программно для MVC - PullRequest
2 голосов
/ 20 мая 2011

Я использую сторонний компонент, который я вызываю метод, передающий объект модели, и если он находит какую-либо ошибку, он вызывает метод обратного вызова, передавая массив ValidationResult. Я хочу установить эти ошибки так, чтобы Html.TextBoxFor отобразил атрибут class = "input-validation-error".

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

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

Возможно ли это?

спасибо!

1 Ответ

1 голос
/ 20 мая 2011

Вы можете использовать ModelState.AddModelError (string, string) внутри контроллера.

// .. the model
public class MyModel { public string Property { get; set; } }

// .. in the controller
public ActionResult DoSomething(MyModel x)
{
    if(x.Property == "2")
    {
        ModelState.AddModelError("Property", "2 is not allowed");
        return View("EditorView", x);
    }
    // else....
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...