2011-05-24 75 views
2

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

@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

您可能会返回另一个视图。

例如return PartialView("MyErrorView");

+0

是...但如何Ajax.BiginForm,可以管理的错误? – elranu 2011-05-24 17:20:51

+0

对于Ajax调用,您还可以返回JSON,如“return Json(new {Result =”Failure“,Message =”Model Invalid“},JsonRequestBehavior.AllowGet);并将此结果解析为成功/失败ajax调用。 – kanchirk 2011-05-24 17:23:29

1

只返回与模式,以显示错误(如您在返回获取相同)创建行动:

[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); 
    } 
+0

()返回那个,你不能转换它,试着编译它 – elranu 2011-05-24 17:19:50

+0

刚做了一个示例,它没有任何错误地编译,或者是因为Ajax.BeginForm?我也会尝试这样做 – slfan 2011-05-24 17:27:20

+0

返回之前View() ; – elranu 2011-05-24 17:29:30