如果出错,返回模态

时间:2014-06-30 06:38:01

标签: javascript jquery asp.net asp.net-mvc asp.net-mvc-4

我在索引页面前面有模态窗口,当模型有效时我重定向到索引视图但是当模型无效时我希望它保留在模态上,我应该怎么做?

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(
    [Bind(Include = "Id,name,user,test")] Roles goles)
{
    if (ModelState.IsValid)
    {
        db.GCollection.Add(groupRoles);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    //return View(groupRoles);
    return null;
}

1 个答案:

答案 0 :(得分:0)

你必须做一些javascript。

1 /从您的控制器返回json:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(
    [Bind(Include = "Id,name,user,test")] Roles goles)
{
    if (ModelState.IsValid)
    {
        db.GCollection.Add(groupRoles);
        db.SaveChanges();
        return Json(new {Success=true, Redirect=@Url.Action("Index")});
    }

    var errors = ModelState.Values.SelectMany(v => v.Errors.Select(e => string.IsNullOrEmpty(e.ErrorMessage) ? e.Exception.Message : e.ErrorMessage)).ToArray();

    return Json(new {Success=false, Errors = errors});
}

2 /使用ajax提交表单。您应该使用jquery form plugin

$("#yourForm").ajaxForm({
    success:function(data){
        if(data.Success===true){
             // in case of success we redirect
             document.location.href= data.Redirect;
        }
        else{
             // Action in case of errors
             alert(data.Errors.join(", "));
        }
    }
});