MVC Отдых и возвращение взглядов - PullRequest
1 голос
/ 17 июля 2011

Я пытаюсь реализовать условное соглашение на моих контроллерах, но не уверен, как обработать неудачную проверку модели при отправке ее обратно в представление «New» из действия Create.

public class MyController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult New()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Create(MyModel model)
    {
        if(!ModelState.IsValid)
        {
             // Want to return view "new" but with existing model
        }

        // Process my model
        return RedirectToAction("Index");
    }
}

Ответы [ 2 ]

1 голос
/ 17 июля 2011

Просто:

[HttpPost]
public ActionResult Create(MyModel model)
{
    if(!ModelState.IsValid)
    {
        return View("New", model);
    }

    // Process my model
    return RedirectToAction("Index");
}
0 голосов
/ 17 июля 2011

Конечно, я не знаком с соглашениями REST, поэтому я могу быть далеко отсюда ... (и я не смог найти источник, который сказал, что метод New () должен быть без параметров в течение нескольких минут поиска в Google )

Вы можете изменить свой метод New () на

public ActionResult New(MyModel model = null)
{
    return View("New", model);
}

А потом в твоем Create ()

    if(!ModelState.IsValid)
    {
         return New(model)
         // Want to return view "new" but with existing model
    }

И проверьте в вашем новом представлении, установлена ​​модель или нет. New () по-прежнему будет работать без параметров, как раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...