2015-02-09 39 views
0

我遇到問題RedirectToAction。我有以下簡單的控制器類。 Index方法顯示組的列表。 Create創建一個新組並將其添加到數據庫中。這工作正常,並顯示在列表中時,它被重定向回Index。問題是URL一旦呈現Index仍在使用Create/Group/Create中的一個。我認爲它實際上重定向到Index,然後立即閃動到Create動作,因爲它顯示Index的正確內容。任何想法會導致這種情況?我沒有定義自定義路由,所以我很確定它不是路由問題。我懷疑這是一個AJAX問題。MVC 4 RedirectToAction生成錯誤的URL

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

_I懷疑這是一個AJAX problem._?你有什麼ajax代碼? – 2015-02-09 21:41:01

+0

我正在使用jQuery Mobile。 – Psyfun 2015-02-09 21:47:45

+0

你提到過AJAX。您是否使用AJAX發佈? – 2015-02-09 21:49:32

回答

0

原來是由JQuery Mobile創建的AJAX問題。在發佈問題之前,我應該做更多的測試,但也許它會幫助其他人。我禁止使用AJAX發佈數據,問題就消失了。現在我必須更新一堆表單才能在任何地方禁用它。

所以我現在用下面的代碼,開始一種形式:

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