Asp.Net Mvc - не очищать ввод ошибок в форме - PullRequest
2 голосов
/ 05 февраля 2010

Когда я проверяю форму с помощью Asp.Net Mvc и в форме появляется ошибка, Asp.Net возвращает мне форму с правильным сообщением об ошибке, но очищает содержимое ввода. Я хотел бы, чтобы содержание ввода оставалось, даже если это неверное содержание. Как я могу это сделать?

UPDATE

Может быть, это потому, что я не использую проверку по умолчанию. Я использую библиотеку Fluent Validation .

Вот что я делаю:

var validator = new UserValidator();
var results = validator.Validate(user);
results.AddToModelState(ModelState, "");

if (!ModelState.IsValid) 
{
     return View("SignUp", user);
}

Ответы [ 2 ]

2 голосов
/ 05 февраля 2010

Возможно, проблема в том, как вы «привязываете» модель, которую вы передаете в представлении. Если вы используете строго типизированное представление и создаете поля ввода, например, с

<%=Html.TexboxFor(m=>m.UserName)%> 

или

<%=Html.TextBox("UserName", Model.UserName)%>

тогда вы должны увидеть значения после публикации. С уважением

0 голосов
/ 05 февраля 2010

В дополнение к тому, что написал @ Germán Ubillos, вы также можете сохранять значения записей в TempData и отправлять их обратно.

<%=Html.TextBox("UserName", TempData["UserName"])%>

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SomeAction(string UserName)
    {
        TempData["UserName"] = UserName;

        // Do your validation
        var validator = new UserValidator();
        var results = validator.Validate(user);
        results.AddToModelState(ModelState, "");

        if (!ModelState.IsValid) 
        {
            return View("SignUp", user);
        }
        //return some view
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...