【问题标题】:Is there an ASP.NET MVC controller that can auto-handle JSON/XML/Views?是否有可以自动处理 JSON/XML/Views 的 ASP.NET MVC 控制器?
【发布时间】:2009-12-16 03:03:04
【问题描述】:

是否有 ASP.NET MVC 控制器或帮助类可以根据 HTTP 请求标头自动返回正确的 HTTP 响应?我希望它能够根据请求的内容类型返回 JSON、XML 或视图,我唯一要做的就是使用数据库中的数据填充一些全局 Model 对象。

【问题讨论】:

    标签: asp.net-mvc json rest controller


    【解决方案1】:

    查看this article - 您可以使用操作过滤器进行操作:

    以下是一个过滤器,它使 整个事情干净多了。这 过滤器查找 Content-Type 标头 在 HTTP 请求中。如果匹配 text/xml 然后是普通旧 XML (POX) 返回,如果匹配 application/json 输出为 JSON。

    【讨论】:

    • 谢谢,我以前看过那篇文章,但我并不想用属性来装饰我的所有方法。不过,目前看来这是唯一的办法了。
    • 属性也可以应用于控制器——但这可能没有帮助,因为您可能需要特定于操作的粒度。
    • 现在我想为每个操作使用 JSON/XML/View,但我可以看到您可能不希望它用于所有操作的情况,例如登录页面或报告生成器/查看器。
    【解决方案2】:

    也看看这篇文章,不使用过滤器,对我来说效果很好。

    我在我的应用程序的几个地方使用 JSON 响应,但如果用户的 javascript 被禁用,它将回退并呈现标准视图...它会检查响应类型以执行此操作。

    http://weblogs.asp.net/rashid/archive/2009/04/15/adaptive-rendering-in-asp-net-mvc.aspx

    保罗

    【讨论】:

    • 谢谢,看起来不错。对于我们当前的项目,我们决定拆分我们的控制器,因为 JSON API 将与网页视图有太大的不同,但我仍然喜欢拥有一个“通用”的统一控制器的想法,因为它不关心什么类型请求是,但知道如何吐出适当的响应。
    猜你喜欢
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多