gpt4 book ai didi

asp.net-core - 在 RC2 中未解决 IUrlHelper

转载 作者:行者123 更新时间:2023-12-03 19:44:38 25 4
gpt4 key购买 nike

从 ASP.NET Core RC1 迁移到 RC2 时,我的 TagHelpers 无法解析注入(inject)的 IUrlHelpers。

[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
}

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

处理请求时发生未处理的异常。
  InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Mvc.IUrlHelper' while attempting to activate '...TagHelpers.UserMenuItemTagHelper'.

有任何想法吗?

最佳答案

我发现自己使用 RC2 必须(或可以)注入(inject)一个 IUrlHelperFactory 并获取一个 UrlHelper 实例。

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 团队当前实现的示例:
https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/ImageTagHelper.cs

关于asp.net-core - 在 RC2 中未解决 IUrlHelper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37318875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com