【问题标题】:With ASP.NET Core Tag Helpers, does the Process method Call ProcessAsync or the other way?使用 ASP.NET Core Tag Helpers,Process 方法是调用 ProcessAsync 还是其他方式?
【发布时间】:2017-04-05 00:22:24
【问题描述】:

我在 asp.net MVC 源代码中找不到 TagHelper 方法的源代码。我试图理解两者之间的关系。我注意到 ITagHelper 接口只需要 ProcessAsync 所以我认为 Process 必须以某种方式调用 ProcessAsync 但我想在源代码中找到它以便我更好地理解。

https://docs.microsoft.com/en-us/aspnet/core/api/microsoft.aspnetcore.razor.taghelpers.itaghelper

【问题讨论】:

    标签: asp.net-core tag-helpers


    【解决方案1】:

    我认为您看到的 Process 方法实际上来自 TagHelper,它实现了 ITagHelper 接口并将 Process 添加为虚拟方法。 XML 注释说:

    使用给定的上下文和输出同步执行 TagHelper。

    因此,如何实现这些方法完全取决于标签助手。正如您所建议的,一种选择是让一个人打电话给另一个人。实现完全取决于组件本身。但是,针对异步方法的 XML cmets 声明如下:

    ProcessAsync:默认情况下调用Process

    the code 展示了它的工作原理:

    public virtual Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        Process(context, output);
        return TaskCache.CompletedTask;
    }
    

    【讨论】:

    • 您能否发布指向您发布的 processAsync 代码的链接。谢谢
    • 感谢@DavidG,没有注意到超链接。另外,感谢您让我知道在哪里(剃刀视图引擎)。这是有道理的。
    猜你喜欢
    • 1970-01-01
    • 2022-03-07
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2011-10-17
    • 2020-10-09
    • 2016-11-17
    • 2015-05-14
    相关资源
    最近更新 更多