ASP.NET MVC返回PartialViewResult

时间:2011-05-24 17:12:51

标签: asp.net-mvc-3 razor

我用@using(Ajax.BeginForm){}制作了一个表单。它发布到我的控制器中返回PartialViewResult的方法。当一切都有效时,它可以正常工作,但如果我应该返回什么 它不是(例如,模型状态无效)? Ajax.BeginForm如何管理错误?我返回什么来管理失败?

@using(Ajax.BeginForm("Create", "Room", new AjaxOptions { HttpMethod="POST",
UpdateTargetId="formRoom", InsertionMode= InsertionMode.Replace, onFailure =??})) {

public PartialViewResult Create(Movie mov)
{
        if (ModelState.IsValid)
        {
            db.Save(mov);
            return PartialView("CreateResult", mov);
        }
        return null;            
}

谢谢!

2 个答案:

答案 0 :(得分:3)

您可以返回另一个视图。

e.g。 return PartialView("MyErrorView");

答案 1 :(得分:1)

只需使用模型返回Create动作即可显示错误(与您在获取时返回的相同):

    [HttpPost]
    public PartialViewResult PartialCreate(Album album)
    {
        if (ModelState.IsValid)
        {
            db.Albums.Add(album);
            db.SaveChanges();
            return PartialView("Index");
        }

        ViewBag.GenreId = new SelectList(db.Genres, "GenreId", "Name", album.GenreId);
        ViewBag.ArtistId = new SelectList(db.Artists, "ArtistId", "Name", album.ArtistId);
        return PartialView(album);
    }