我已经看到这两种方式将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:
return Content(sw.ToString(), "text/xml");
选项2更方便,但是在性能,安全性等方面有哪些优势?哪一个是首选(最佳实践)?
答案 0 :(得分:7)
选项2的巨大优势在于您可以单独测试此控制器操作,因为它不依赖于可怕的HttpContext.Current
静态属性。此外,它是实现此类功能的更多MVCish方式。在ASP.NET MVC中,C
代表Controller,控制器具有返回ActionResult
的Actions。因此ContentResult
只是ActionResult的一个具体实现,您可以从Controller Action返回。
顺便说一下,你知道每次ASP.NET开发人员在他的应用程序中使用HttpContext.Current
时,小猫会死吗?所以你可以完全忘记选项1.这不存在。我甚至不会将此称为。这是对人类的犯罪。