从MVC中的类库创建超链接

本文关键字:创建 超链接 类库 MVC | 更新日期: 2023-09-27 18:25:17

我试图从类库项目创建一个超链接,但结果为空。

代码:

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

有没有办法从类库项目中创建超链接?如果是,如何?

编辑

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

从MVC中的类库创建超链接

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

我希望这对你有帮助。

如果代码在控制器中,则不需要创建UrlHelper类的实例。Controller类具有类型为UlrHelper的Url属性(请参阅此)。

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

var url = Url.Action("View", "Collection", new { area = "Administration", id = Request.Id });
您创建的UrlHelper对web应用程序中存在的路由一无所知。您可以将控制器的UrlHelper作为参数传递。

你也可以使用

new UrlHelper(requestContext, routeCollection)

通过这种方式,控制器初始化UrlHelper类型的属性Url