从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.Mvc
的UrlHelper
类的对象urlHelper返回空字符串。
我处理这类问题的方法之一是使用依赖项注入,并向库中的类传递一个服务接口(例如: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