MVC 5 - RedirectToAction不重定向

时间:2013-12-10 10:00:40

标签: c# asp.net-mvc-5

您好我的RedirectToAction没有重定向问题。我的代码成功点击了Redirect上的断点,因此我可以确认它正被调用。然而,似乎没有任何事情发生。

我曾尝试查看Chrome中的网络流量,似乎没有任何明显的东西。我一定错过了简单的事情!

    //
    // POST: /Blog/CreateBlog
    [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult CreateBlog(BlogViewModel model)
    {
        var userId = User.Identity.GetUserId();
        model.UserId = userId;

        if (ModelState.IsValid && model.UserId != null)
        {
            Mapper.CreateMap<BlogViewModel, Blog>();
            if (_blogProcess.CreateBlog(Mapper.Map<BlogViewModel, Blog>(model)))
            {
                RedirectToAction("Index", "Blog");
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

3 个答案:

答案 0 :(得分:30)

尝试

return RedirectToAction("Index", "Blog");

答案 1 :(得分:3)

除了Nalaka526的答案之外:如果我们查看RedirectToAction Controller,我们可以看到它是return类的实例方法,其中documentation为返回类型,派生自RedirectToRouteResult,表示我们必须View,就像我们返回PartialView和{{1}}一样。

答案 2 :(得分:0)

  1. 如果您在视图页面上使用@using(Html.BeginForm(“Index”,“Blog”..),那么

    public ActionResult CreateBlog(BlogViewModel model)
    {
        ....
        return RedirectToAction("Index", "Blog") 
    } 
    

    应该有用。

  2. 如果您使用的是Ajax.BeginForm,则需要从javascript OnSuccess事件重定向到新的操作/网址。 视图的示例代码

    @using (Ajax.BeginForm("Index", "Blog", new AjaxOptions { HttpMethod = "post" , OnSuccess="RedirectFunction"}
    
    function RedirectFunction(data)
    {
        window.location.href = “Index”;
    }
    
  3. 希望这有帮助。