C# MVC API 返回Json

来源:互联网 发布:c语言a=b>c 编辑:程序博客网 时间:2024/05/01 15:45

修改项目WebApiConfig文件
修改后文件

public static void Register(HttpConfiguration config)        {            // Web API 配置和服务            // Web API 路由            config.MapHttpAttributeRoutes();            config.Routes.MapHttpRoute(                name: "DefaultApi",                routeTemplate: "api/{controller}/{action}/{id}",                defaults: new { id = RouteParameter.Optional }            );            GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();            //默认返回 json              GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings.Add(                new QueryStringMapping("datatype", "json", "application/json"));            //返回格式选择 datatype 可以替换为任何参数               GlobalConfiguration.Configuration.Formatters.XmlFormatter.MediaTypeMappings.Add(                new QueryStringMapping("datatype", "xml", "application/xml"));          }

其中路由配置中加入action 可以定位到控制器方法内,即控制器内多个方法有相同的参数名不会报错
在Global.asax文件中添加

protected void Application_Start()        {            GlobalConfiguration.Configure(WebApiConfig.Register);            GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();         }

本地调试发布后的api 时无法跨域请求,这时就需要在web.config文件中添加一下节点数据

 <system.webServer>    <httpProtocol>      <customHeaders>        <add name="Access-Control-Allow-Origin" value="*" />        <add name="Access-Control-Max-Age" value="30"/>        <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/>        <add name="Access-Control-Allow-Headers" value="Content-Type, Accept" />      </customHeaders>    </httpProtocol>  </system.webServer>
1 0
原创粉丝点击