Asp.net mvc MVC HttpContext.Response.Write()与Content()的比较
我已经看到了这两种将xml作为客户端响应发送的方法 备选案文1: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
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中本来就不应该存在。