• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > .Net基于MVC4 Web Api输出Json格式实例

.Net基于MVC4 Web Api输出Json格式实例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了.net mvc4视频教程,.net mvc4,精通asp.net mvc4,精通asp.net mvc4 pdf,asp net mvc4教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了.Net基于MVC4 Web Api输出Json格式的方法,分享给大家供大家参考。具体实现方法如下:

1、Global 中增加json输出

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    //添加json 解析  使用方法 http://xxx/api/action?json=true
    GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(new QueryStringMapping("json", "true", "application/json"));
    WebApiConfig.Register(GlobalConfiguration.Configuration);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}</div>

2、Global 中删除xml解析

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    WebApiConfig.Register(GlobalConfiguration.Configuration);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
    //删除xml的解析 当返回值是string 时 直接返回string不是json对象
    GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
}</div>

3、指定返回格式

新建方法 需要程序集:
public static HttpResponseMessage ToJson(Object obj)
{
    String str;
    if (obj is String || obj is Char)
    {
        str = obj.ToString();
    }
    else
    {
        var serializer = new JavaScriptSerializer();
        str = serializer.Serialize(obj);
    }
    var result = new HttpResponseMessage { Content = new StringContent(str, Encoding.GetEncoding("UTF-8"), "application/json") };
    return result;
}</div>

 调用户方法转换为json对象输出

{
     return ToJson(name);
}</div>

4、重写默认实现类 所有输出将被重新解析成 json

新建JsonContentNegotiator 类
{
    private readonly JsonMediaTypeFormatter _jsonFormatter;
    public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
    {
        _jsonFormatter = formatter;
    }

    public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
    {
        var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
        return result;
    }
}</div>

WebApiConfig中使用重写
{
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );

    var jsonFormatter = new JsonMediaTypeFormatter();
    config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));

    // 取消注释下面的代码行可对具有 IQueryable 或 IQueryable<T> 返回类型的操作启用查询支持。
    // 若要避免处理意外查询或恶意查询,请使用 QueryableAttribute 上的验证设置来验证传入查询。
    // 有关详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=279712。
    //config.EnableQuerySupport();

    // 若要在应用程序中禁用跟踪,请注释掉或删除以下代码行
    // 有关详细信息,请参阅: http://www.asp.net/web-api
    config.EnableSystemDiagnosticsTracing();
}</div>

希望本文所述对大家的asp.net程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • .Net基于MVC4 Web Api输出Json格式实例

相关文章

  • 2017-05-11asp.net微信开发(自定义会话管理)
  • 2017-05-11Global.asax的Application_Error实现错误记录/错误日志的代码
  • 2018-08-20详解ASP.NET Core 2.0 视图引擎(译)
  • 2017-05-11asp.net中获取远程网页的内容之一(downmoon原创)
  • 2017-05-11.Net微信开发之如何解决access_token过期问题
  • 2017-05-11asp.net 从客户端中检测到有潜在危险的 Request.Form 值错误解
  • 2017-05-11ASP.Net2.0 GridView 多列排序,显示排序图标,分页
  • 2017-05-11ASP.NET Internet安全Forms身份验证方法
  • 2018-08-20VS2015自带LocalDB数据库用法详解
  • 2017-05-11log4net教程日志分类和自动维护示例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET Core MVC压缩样式、脚本详解
    • .NET程序集引用COM组件MSScriptControl遇到问题的解决方法
    • asp.net多文件上传实例讲解
    • 浅谈Asp.net Mvc之Action如何传多个参数的方法
    • asp.NET 脏字过滤算法
    • ASP.NET验证码实现(附源码)
    • asp.net 分页链接方法
    • 用程序修改IIS目录的Asp.Net版本
    • Visual Studio 2017正式版离线安装教程
    • .net后台代码调用前台JS的两种方式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有