Asp.net mvc MVC HttpContext.Response.Write()与Content()的比较

Asp.net mvc MVC HttpContext.Response.Write()与Content()的比较,asp.net-mvc,Asp.net Mvc,我已经看到了这两种将xml作为客户端响应发送的方法 备选案文1: var context = System.Web.HttpContext.Current; context.Response.Clear(); context.Response.Write(sw.ToString()); context.Response.ContentType = "text/xml"; context.Respons

我已经看到了这两种将xml作为客户端响应发送的方法

备选案文1:

var context = System.Web.HttpContext.Current;
            context.Response.Clear();
            context.Response.Write(sw.ToString());
            context.Response.ContentType = "text/xml";
            context.Response.End();
备选案文2:

返回内容(sw.ToString(),“text/xml”)


选项2更方便,但其中一个选项是否有性能、安全性等方面的优势。?首选哪一种(最佳实践)?

选项2的最大优点是,您可以单独对该控制器操作进行单元测试,因为它不依赖于可怕的
HttpContext.Current
静态属性。此外,它是实现此类功能的一种更为MVCish的方式。在ASP.NET MVC中,
C
代表控制器,控制器具有返回
ActionResult
的操作。因此,
ContentResult
只是ActionResult的一个具体实现,您可以从控制器操作返回


顺便问一下,您知道吗,每当ASP.NET开发人员在其应用程序中使用
HttpContext.Current
时,一只小猫就会死?因此,您可以完全忘记选项1。这是不存在的。我甚至不认为这是一种选择。这是反人类罪。

HttpContext.Current
在ASP.NET 5中也不存在了。当然,它不存在了。谁想杀小猫?这在ASP.NET MVC中本来就不应该存在。