【问题标题】:Generating a route outside of a controller, similar to Url.RouteUrl()在控制器外部生成路由,类似于 Url.RouteUrl()
【发布时间】:2015-02-16 20:42:08
【问题描述】:

我在 ASP.NET MVC 5 应用程序中有一个服务类,它应该生成一个完全限定的路由 URL。

这个类被一个控制器调用。

在控制器中,我通常会生成路由的 URL,例如:

 string myUrl = Url.RouteUrl("ViewCust", new{custId=customerId},Request.Url.Scheme)

如何在非控制器的类中生成路由 URL?

我试过了:

string myUrl = System.Web.Mvc.UrlHelper()
            .RouteUrl(
            routeName,
            routeValues,
            HttpContext.Current.Request.Url.Scheme);

这会导致

'System.ArgumentNullException' 值不能为空。参数名称:routeCollection

【问题讨论】:

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


    【解决方案1】:

    以下是关于唯一的方法:

    var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
    

    但是,这需要注意:

    1. 存在对System.Web 的硬依赖
    2. 必须在 MVC 项目的上下文中完成(此代码所在的实际类可以存在于 MVC 项目之外,但只能从 MVC 项目中调用)。

    【讨论】:

      猜你喜欢
      • 2016-10-21
      • 2019-11-08
      • 1970-01-01
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多