ASP.NET MVC - 以 HTML 或 XML 形式返回数据

Posted

技术标签:

【中文标题】ASP.NET MVC - 以 HTML 或 XML 形式返回数据【英文标题】:ASP.NET MVC - Returning data as HTML or XML 【发布时间】:2010-11-19 16:54:31 【问题描述】:

请求http://someserver.com/user/btyndall时 我想返回 html 当请求http://someserver.com/user/btyndall?format=xml 我想返回我的模型的 XML 表示

我已经下载了 MvcContrib。 (我不敢相信 XmlResult 不是核心框架的一部分)

在控制器中处理请求的正确方法是什么。使用 JSON,您有一个 JsonResult 和 Json()。我看到了 XmlResult 但没有看到 Xml() 方法

我可以使用一些指导。到目前为止我所拥有的(nada):

public ActionResult Details(int id)

  return View();

更新: 查看所有cmets

【问题讨论】:

我很快会在 ASP.NET CodePlex 站点 aspnet.codeplex.com 上发布一些内容,该站点将解决这种情况。敬请关注。 :) 下周我需要一些东西来制作原型。在此期间我应该使用什么策略,Phil? 【参考方案1】:

这个post 展示了一种实现您所寻找的好方法。

【讨论】:

现在试试这个方法。谢谢。过会儿会回帖。【参考方案2】:

如果只返回两个不同的视图呢?

public ActionResult Details(int id, string format) 
  if (!String.IsNullOrEmpty(format) && format == "xml") 
    return View("MyView_Xml");
  
  else 
    return View("MyView_Html");
  

然后创建两个视图。 MyView_Xml:

<%@ Page Inherits="System.Web.Mvc.ViewPage<Customer>" ContentType="text/xml">
<?xml version="1.0" encoding="utf-8" ?>
<customer>
  <first_name><%= Model.FirstName %></first_name>
  <last_name><%= Model.FirstName %></last_name>
</customer>

和 MyView_Html

<%@ Page Inherits="System.Web.Mvc.ViewPage<Customer>">
<html>
  <body>
    <div><label>First Name:</label><%= Mode.FirstName %></div>
    <div><label>Last Name:</label><%= Mode.LastName %></div>
  </body>
</html>

【讨论】:

我知道这可以帮助我序列化为 XML,但如果我想为 Create() 方法排除 XML 怎么办?好像我在这里手写更多代码。 使用 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create(XDocument xml) 接受 XML 帖子

以上是关于ASP.NET MVC - 以 HTML 或 XML 形式返回数据的主要内容,如果未能解决你的问题,请参考以下文章

更改 ASP.NET MVC 或 IIS 中的 URL 根路径

[转载]在ASP.NET MVC中,使用Bundle来打包压缩js和css

asp.net mvc3 返回原始 html 以查看

[Asp.net mvc]实体更新异常:存储区更新插入或删除语句影响到了意外的行数。实体在加载后可能被修改或删除。

C# asp.net mvc 创建虚拟目录

ASP.NET Core MVC 入门到精通 - 3. 使用MediatR