Asp.net mvc 在ASP.NET MVC中,为什么ViewContext具有Writer属性?

Asp.net mvc 在ASP.NET MVC中,为什么ViewContext具有Writer属性?,asp.net-mvc,Asp.net Mvc,查看源代码,我看到ViewContext在ViewResultBase.ExecuteResult()方法中被实例化,并被传递给编写器 ViewContext viewContext = new ViewContext(context, this.View, this.ViewData, this.TempData, output); 但是当视图被呈现时,writer会被传递到view.Render()方法中,我相信这是故意的,以便WebForms视图引擎以外的视图引擎可以呈现到该writer

查看源代码,我看到ViewContext在ViewResultBase.ExecuteResult()方法中被实例化,并被传递给编写器

ViewContext viewContext = new ViewContext(context, this.View, this.ViewData, this.TempData, output);
但是当视图被呈现时,writer会被传递到view.Render()方法中,我相信这是故意的,以便WebForms视图引擎以外的视图引擎可以呈现到该writer中

this.View.Render(viewContext, output);

那么,作为ViewContext一部分的编写器的用途是什么呢?

这样,您就可以获取视图的输出并对其执行任何需要的操作。一个很好的例子是使用viewengine呈现HTML模板电子邮件。

是的。将视图呈现为电子邮件的字符串可能是我脑海中能想到的主要用途。这不是第二个论点的目的吗?