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();
}