首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RC2中未解析IUrlHelper

RC2中未解析IUrlHelper
EN

Stack Overflow用户
提问于 2016-05-19 17:17:04
回答 1查看 2.3K关注 0票数 9

从ASP.NET核心RC1迁移到RC2 my TagHelpers时,无法解析注入的IUrlHelpers。

代码语言:javascript
运行
复制
[HtmlTargetElement("usermenulink", Attributes = "controller-name, action-name, menu-text, menu-item, active-item")]

public class UserMenuItemTagHelper : TagHelper
{
    public IUrlHelper _UrlHelper { get; set; }

    public UserMenuItemTagHelper(IUrlHelper urlHelper)
    {
        _UrlHelper = urlHelper;
    }
    //... abbreviated
}

相反,我得到了一个异常:

处理请求时发生未处理的异常。

代码语言:javascript
运行
复制
  InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Mvc.IUrlHelper' while attempting to activate '...TagHelpers.UserMenuItemTagHelper'.

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 18:02:02

我自己发现,使用RC2,您必须(或可以)注入一个IUrlHelperFactory并获得它的一个UrlHelper实例。

代码语言:javascript
运行
复制
public class UserMenuLinkTagHelper : TagHelper
{
    [ViewContext]
    public ViewContext ViewContext { get; set; }

    public IUrlHelperFactory _urlHelperFactory { get; set; }

    public UserMenuLinkTagHelper(IUrlHelperFactory urlHelperFactory)
    {
        _urlHelperFactory = urlHelperFactory;
    }
    public override void Process(TagHelperContext context, TagHelperOutput output)
    {
        var urlHelper = _urlHelperFactory.GetUrlHelper(ViewContext);

        string menuUrl = urlHelper.Action(ActionName, ControllerName);

        //...
    }


}

下面是Mvc team的当前实现的示例:https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/ImageTagHelper.cs

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37318875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档