如何在ASP.NET MVC 3项目的服务层生成URL

d45*_*456 3 c# url web-applications service-layer asp.net-mvc-3

我正在寻找一种简单的方法(如果它存在)在ASP.NET MVC 3 Web应用程序中为指定的控制器和操作生成服务类中的URL.我想在服务层执行此操作,因为需要在QR代码中对此URL进行编码.

这在View或控制器中很简单,因为通过System.Web.Mvc可以使用UrlHelper,所以我可以在使用我的服务类的控制器操作中创建URL的开头,但我希望能够在QR码生成.

提前致谢.

Eri*_* J. 12

具有不同层的主要原因是关注点的分离.服务层不应该关注请求路由.

我将URL传递到服务层并让服务层返回生成的QR码.

  • 如果您必须发送一封包含指向应用程序端点的链接的电子邮件,那么您需要在服务层中构建该链接! (3认同)
  • 是的,使用控制器中的Url帮助程序,并将其作为参数传递给服务层. (2认同)

小智 5

我理解关注点分离,但有时开发人员必须做开发人员必须做的事情!

所以这就是我所做的:

    var Url = new UrlHelper(HttpContext.Current.Request.RequestContext);
    var myUrl= Url.RouteUrl("routeName", new { controller="ControllerName", action="Index", area="", otherDictionaryEntries="otherId"});
Run Code Online (Sandbox Code Playgroud)

问候!