我遇到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);
}
}
答案 0 :(得分:0)
原来这是由JQuery Mobile创建的AJAX问题。我应该在发布问题之前做更多的测试,但也许它会帮助其他人。我禁用了使用AJAX发布数据,问题就消失了。现在我必须更新一堆表单以在任何地方禁用它。
所以我现在使用以下代码开始一个表单:
@using (Html.BeginForm("Create", "Group", FormMethod.Post, new { data_ajax = "false" }))