ASP.NET MVC: отправка данных в представления в запросах POST

У меня есть следующий код:

    public ActionResult Foo()
    {
        var a = "a";


        return View(new FooModel {  A = a});

    }

    [HttpPost]
    public ActionResult Foo(....)
    {
        // I need to set all the values of the ViewModel again, not to get a null exception in the view
         return View(new FooModel {  A = a});
    }

Так как я могу сохранить это СУХОЙ и не повторять то, что я уже сделал?

2 ответа

Решение

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

Может быть, это будет глупо, но это работает:)

[HttpPost]
    public ActionResult Foo(....)
    {
        // I need to set all the values of the ViewModel again, not to get a null exception in the view
         return Foo();
    }
Другие вопросы по тегам