MVC休息和返回视图

时间:2011-07-17 11:29:24

标签: asp.net-mvc-3 c#-4.0 restful-architecture

我正在尝试在我的控制器上实现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");
    }
}

2 个答案:

答案 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()仍然可以完美地工作。