2015-02-09 3 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 заподозрить это problem._ AJAX? Какой у вас код ajax? –

+0

Я использую jQuery Mobile. – Psyfun

+0

Вы упомянули AJAX. Вы отправляете сообщения с помощью AJAX? –

ответ

0

Оказывается, это была проблема AJAX, созданная JQuery Mobile. Я должен был сделать больше тестов, прежде чем публиковать вопрос, но, возможно, это поможет кому-то другому. Я отключил отправку данных с помощью AJAX, и проблема исчезла. Теперь я должен обновить кучу форм, чтобы отключить его повсюду.

Так что я теперь использую следующий код, чтобы начать форму:

@using (Html.BeginForm("Create", "Group", FormMethod.Post, new { data_ajax = "false" })) 
Смежные вопросы