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