ASP.NET MVC和text / xml内容types
我想从一个动作返回一个View(),并且得到的响应应该有一个text / xml的内容types,而不是默认的文本/ html。
我尝试了以下,但没有成功:
Response.ContentType = "text/xml"; return View();
我知道你可以通过返回ContentResult
指定内容types,但是这不会渲染我的视图。
我希望我不需要渲染视图的string,然后使用return Content()
,所以我可能忽略了一些简单的方法。
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" ContentType="text/xml" %>
你需要渲染string。 要返回text / xml,请执行以下操作:
return new ContentResult { ContentType = "text/xml", Content = UTF8.GetString(yourXmlString), ContentEncoding = System.Text.Encoding.UTF8 };
用户控件(ASCX)不接受ContentType =“text / xml”。
解:
public ActionResult xxx() { Response.ContentType = "text/xml"; return View("xxx.ascx"); }
您需要一个不会覆盖事物并生成HTML的视图,包括它自己的上下文types。
自定义视图可以直接呈现给Response.Write(请参阅Reflector中的JsonResult
,以获得与您需要的类非常相似的类)。
要呈现没有中间string的XML,请将您的XML保存到通过Response.Output
创build的XmlWriter
。
你有没有尝试从代码隐藏页面中的视图的预渲染方法设置response.content? 这显然假设你正在使用webform视图引擎