我正在尝试在我的控制器上实现restful约定,但我不确定如何在从Create操作将其发送回'New'视图时处理失败的模型验证。
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");
}
}
答案 0 :(得分:1)
简单地:
[HttpPost]
public ActionResult Create(MyModel model)
{
if(!ModelState.IsValid)
{
return View("New", model);
}
// Process my model
return RedirectToAction("Index");
}
答案 1 :(得分:-1)
当然我不熟悉REST约定,所以我可能会离开这里...(我找不到一个说明New()方法必须在几分钟内无参数搜索的源)
您可以将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()仍然可以完美地工作。