2012-08-03 45 views
3

我正在寻找一种简单的方法(如果存在)在指定的控制器和ASP.NET MVC 3中的操作的服务类中生成URL Web应用程序。我想在服务层做到这一点,因为需要在QR码中编码这个URL。如何在ASP.NET MVC 3项目的服务层中生成URL

由于UrlHelper通过System.Web.Mvc可用,所以在视图或控制器中这很简单,所以我可以在使用我的服务类的控制器操作中创建URL的开头,但我希望做到这一点在QR码生成的时候。

在此先感谢。

+0

到目前为止你已经试过了什么代码..你可以发布你已经尝试过的..? – MethodMan 2012-08-03 17:09:21

回答

12

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

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

+2

是的,在控制器中使用Url助手,并将其作为参数传递给服务层。 – Zasz 2012-08-03 17:21:02

+0

绝对正是我所想的。 – 2012-08-03 17:36:44

+0

我不确定这是否最好。感谢您的澄清。 – d456 2012-08-03 17:55:50

4

我明白分离的担忧,但有时开发人员必须做开发人员必须做的事情!

因此,这里是我做了什么:

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

商祺!