【问题标题】:Routing to a fixed URL in ASP.NET MVC路由到 ASP.NET MVC 中的固定 URL
【发布时间】:2014-10-13 11:34:39
【问题描述】:

假设我在一个名为sampleProject 的项目中工作。当输入一个特定的 URL 假设 /example/action 时,它将如何重定向到另一个 URL,即 www.facebook.com

这是我正在尝试的代码:

routes.MapRoute(
    "catalogAnnualreport2013", //Route Display Name
    "/catalog/annualreport2013",

    RedirectResult ("www.facebook.com")                    
);

【问题讨论】:

    标签: asp.net asp.net-mvc-4


    【解决方案1】:

    global.asax 文件中,您可以简单地这样做:

    void Application_Start(object sender, EventArgs e)
    {
    System.Web.Routing.RouteTable.Routes.MapPageRoute("YourReRoute", "example/action", "www.facebook.com");
    }
    

    【讨论】:

    • 我在尝试此操作时收到以下错误:VirtualPath must be a non-empty string to start with ~/.参数名称:virtualPath
    • @MrutyunjayaMohapatra:这可能是因为您没有在答案中按原样实施它。这是我从我的网站上获取的代码,所以我知道它有效。
    • @TomRedfern 我很困惑为什么您批准(并改进)了对这个答案的建议编辑。这是一个后续问题正在编辑以代替此处的答案,而不是对帖子的适当改进。
    • @MartijnPieters 好地方——我想我平时的铁杆焦点一定已经滑落了。向法国人道歉 - 我以后会更加小心。
    • @TomRedfern:没问题,感谢您的回复。 :-) 这个答案的 OP learned how to roll back 今天,无论如何!
    【解决方案2】:

    您可以像这样在Action 中使用Redirect

    public ActionResult MyAction()
    {
        return Redirect("http://www.facebook.com");
    }
    

    【讨论】:

    • 无需创建控制器来重新路由 URL。
    • 我正在使用 routes.MapRoute("catalogAnnualreport2013", //Route Display Name "/catalog/annualreport2013", ...
    • @MrutyunjayaMohapatra:那么,如果您已经在使用 MapRoutes(我假设您是),那么您根本不需要控制器,只需在 global.asax 中处理问题就可以了.
    • @frenchie 同意,但这不是投反对票的理由。从问题中,我了解到作者已经拥有该 URL 的控制器和操作。
    • @Vladimirs:你说得对,我删除了投票。事实上,为努力而投票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多