如何在ASP.NET MVC 5中获取DI实例对象或注入属性



我正在尝试创建一个自定义TagHelper而无法获得IApplicationEnvironment的实例,一旦TagHelper基类只有一个无参数构造函数。

那么,为DI?

注入属性或创建实例的方法是什么

我找到了它。我们可以使用Microsoft.AspNet.Mvc[Activate]属性。

namespace ActivatorWebSite.TagHelpers
{
    [TargetElement("body")]
    public class FooterTagHelper : TagHelper
    {
        [Activate] // here
        IApplicationEnvironment ApplicationEnvironment { get; set; }
        [Activate] // and here
        public IHtmlHelper HtmlHelper { get; set; }
        [Activate] // and here
        public ViewDataDictionary ViewData { get; set; }
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            output.PostContent.SetContent($"<footer>{HtmlHelper.Encode(ViewData["footer"])}</footer>");
        }
    }
}

最新更新