MVC 4 RedirectToAction生成错误的URL

时间:2015-02-09 21:37:10

标签: ajax asp.net-mvc-4 iis redirecttoaction

我遇到RedirectToAction的问题。我有以下简单的控制器类。 Index方法显示组列表。 Create创建一个新组并将其添加到数据库中。这工作正常,并在重定向回Index时显示在列表中。问题是,呈现Index后的网址仍在使用Create/Group/Create中的网址。我认为它实际上正确地重定向到Index,然后立即闪烁到Create操作,因为它显示了Index的正确内容。知道是什么会导致这个吗?我没有定义自定义路由,所以我很确定它不是路由问题。我怀疑这是一个AJAX问题。

public class GroupController : Controller
{
    private ModelDb db = new ModelDb();

    [Authorize(Roles = "Administrator")]
    public ActionResult Index()
    {
        return View();
    }

    [Authorize(Roles = "Administrator")]
    public ActionResult Create()
    {
        return View();
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    [Authorize(Roles = "Administrator")]
    public ActionResult Create(Group group)
    {
        if (ModelState.IsValid)
        {
            db.Groups.Add(group);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(group);
    }
}

1 个答案:

答案 0 :(得分:0)

原来这是由JQuery Mobile创建的AJAX问题。我应该在发布问题之前做更多的测试,但也许它会帮助其他人。我禁用了使用AJAX发布数据,问题就消失了。现在我必须更新一堆表单以在任何地方禁用它。

所以我现在使用以下代码开始一个表单:

@using (Html.BeginForm("Create", "Group", FormMethod.Post, new { data_ajax = "false" }))