【问题标题】:ASP.NET MVC - Returning data as HTML or XMLASP.NET MVC - 以 HTML 或 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?

标签: asp.net-mvc xml ajax mvccontrib


【解决方案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 帖子
猜你喜欢
  • 1970-01-01
  • 2011-09-18
  • 1970-01-01
  • 2012-05-28
  • 2017-08-08
  • 2012-07-23
  • 1970-01-01
  • 2012-12-08
  • 1970-01-01
相关资源
最近更新 更多