0

自定义RouteHandler捕获的RedirectToAction("Index", "User"),但是RedirectPermanent("/user/index/")没问题

在一个动作中,这样的代码

 public ActionResult AddSimpleDescription(TSimpleDescription entity2, string url, string which)
        {
 //my colds

return RedirectToAction("Index", "User");
}

在全局文件中,我注册了一个自定义 RouteHandler,如下所示

public static void RegisterHandler(RouteCollection routes)
        {

            routes.Add("upload_file",
            new Route("upfile/bkup/nsksjskjs/", new HHT.Utility.Components.CompressRoutHandler()));

        }

当 mycode 在操作 AddSimpleDescription 中运行完成时,然后执行 RedirectToAction("Index", "User") 并且页面转到 url "http://localhost:59000/upfile/bkup/nsksjskjs?action=Index&controller=User" 为什么?我该如何解决这个问题?

索引操作代码

public ActionResult Index(string param, string id) { try { getUserName();

            //ViewBag.RCount = remindbll.GetCount(int.Parse(User.Identity.Name));
            return View();
        }
        catch (Exception ex)
        {
            return Render(3, ex.Message);
        }
    }
4

1 回答 1

0

好的,这是因为您正在使用自定义路由,我不知道“upload_file”是否是您的唯一路由......但是当您使用自定义路由时必须指定您要使用的路由,否则它将使用默认路由

您有以下注册路线...

public static void RegisterHandler(RouteCollection routes)
    {

        routes.Add("default_route", new Route("{controller}/{action}/{id}", new {controller = "controller", action = "action", id = UrlParameter.optional})

        routes.Add("upload_file",
        new Route("upfile/bkup/nsksjskjs/", new HHT.Utility.Components.CompressRoutHandler()));

    }

所以你必须告诉应该使用哪条路线

return RedirectToRoute("default_route");
于 2012-06-05T03:57:08.073 回答