使用 return RedirectToAction 进行错误重定向

发布于 2024-10-19 13:42:07 字数 844 浏览 7 评论 0原文

我需要将用户从一个控制器重定向到另一控制器。

我正在使用

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

它工作得很好,除非我发布了我的网站。我的网站正在 IIS 目录中运行,但网址看起来像这样

http://localhost/Project/index 

,但它应该是正确的

http://localhost/webapp/Project/index 

编辑

你的意思 开头是否有一个“/”你的路由?

是的,目录设置为 IIS 应用程序。

没有什么特别的,但它是:

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );
        }

I need to redirect the user from one controller to other controller.

I'm using

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

It worked great unless I published my web.My web is running in a IIS directory,but the url looks like this

http://localhost/Project/index 

but it should be right

http://localhost/webapp/Project/index 

EDIT

What do you mean with Is there a "/" in beginning of your routing? ?

Yes, the directory is set to an IIS application.

There's nothing special but here it is:

 public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

少女情怀诗 2024-10-26 13:42:07

如果您想将路径从 更改为

 http://localhost/Project/index 

 http://localhost/webapp/Project/index 

请将前缀放入您的路由注册中,例如:

public static void RegisterRoutes(RouteCollection routes)
     {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "webapp/{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }

If you want to change the path from

 http://localhost/Project/index 

to

 http://localhost/webapp/Project/index 

then put the prefix in your Route registration, like :

public static void RegisterRoutes(RouteCollection routes)
     {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "webapp/{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    }
梦里泪两行 2024-10-26 13:42:07
  • 你的路由开头有一个“/”吗?
  • 您确定虚拟目录在 IIS 中设置为“应用程序”吗?

将您的路由规则添加到问题中以帮助您提供更多帮助(然后请在您这样做时对答案进行评论,让我知道您这样做了,谢谢)。t

  • Is there a "/" in beginning of your routing?
  • Did you make sure the virtual directory is set as Application in IIS?

Add your routing rules to the question to help you more (and then please comment on the answer when you do to let me know that you did, thanks).t

昔日梦未散 2024-10-26 13:42:07

改变你的路线:

routes.MapRoute(
                "Default", // Route name
                "webapp/{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

Change your route:

routes.MapRoute(
                "Default", // Route name
                "webapp/{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文