从MVC中的类库创建超链接

时间:2014-10-01 13:56:02

标签: c# asp.net-mvc

我正在尝试从类库项目创建一个超链接,但我的结果是空的。

代码:

var urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext);
var url = urlHelper.Action("View", "Collection", new { area = "Administration", id = Request.Id });

有没有办法从类库项目创建超链接?如果是这样,怎么样?

修改

urlHelper是来自UrlHelper System.Web.Mvc类的对象 urlHelper返回空字符串。

3 个答案:

答案 0 :(得分:1)

我处理这类问题的方法之一是使用依赖注入并在库中向您的类传递一个服务接口(例如:IHyperlinkFormatter),它将提供生成URL的方法。然后,可以通过MVC项目中知道可用路由的类来实现此接口。通过这样做,您还可以更好地控制单元测试,并通过遵守单一责任SOLID原则来提高代码质量。

我希望这对你有所帮助。

答案 1 :(得分:0)

如果您的代码在控制器内,则不需要创建UrlHelper类的实例。 Controller类具有UlrHelperSee this)类型的Url属性。

在您的控制器中,您将拥有:

var url = Url.Action("View", "Collection", new { area = "Administration", id = Request.Id });

答案 2 :(得分:0)

您创建的

UrlHelper对您的网络应用中存在的路线一无所知。您可以将UrlHelper控制器作为参数传递。

您也可以使用

new UrlHelper(requestContext, routeCollection)

这样控制器初始化Url类型

的属性UrlHelper