【发布时间】:2016-07-11 15:02:02
【问题描述】:
根据this article,如果我们使用多个标签助手(针对同一个标签)并且在每个标签助手中我们将使用await output.GetChildContentAsync() 来接收html内容,我们将遇到缓存输出的问题:
问题是标签助手输出被缓存了,当 WWW 标签助手运行时,它会覆盖来自 HTTP 标签助手的缓存输出。
使用如下语句解决了问题:
var childContent = output.Content.IsModified ? output.Content.GetContent() :
(await output.GetChildContentAsync()).GetContent();
此行为的描述:
上面的代码检查内容是否被修改,如果 它有,它从输出缓冲区获取内容。
问题是:
1) TagHelperOutput.GetChildContentAsync() 和 TagHelperOutput.Content.GetContent() 在底层有什么区别?
2) 哪个方法将结果写入缓冲区?
3) “缓存输出”是什么意思:ASP.NET MVC Core 缓存初始 razor 标记或 html 标记作为TagHelper 调用的结果?
提前致谢!
【问题讨论】:
标签: caching asp.net-core-mvc tag-helpers