mvc结构中webapi的使用

来源:互联网 发布:java ojdbc6 编辑:程序博客网 时间:2024/06/10 00:19

新建一个api控制器,vs2015中的选择:
这里写图片描述
App_Start/WebApiConfig.cs的修改:

using System;using System.Collections.Generic;using System.Linq;using System.Net.Http.Formatting;using System.Web;using System.Web.Http;using System.Web.Http.WebHost;using System.Web.Routing;using System.Web.SessionState;namespace sccod{    public static class WebApiConfig    {        public static void Register(HttpConfiguration config)        {            config.MapHttpAttributeRoutes();            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"));            config.Routes.MapHttpRoute(                name: "DefaultApi",                routeTemplate: "api/{controller}/{id}",                defaults: new { id = RouteParameter.Optional }            );             //新加的规则              config.Routes.MapHttpRoute(                name: "DefaultApi2",                routeTemplate: "api/{controller}/{action}/{id}",                defaults: new { id = RouteParameter.Optional }            );             //新加的规则              config.Routes.MapHttpRoute(                name: "DefaultApi1",                routeTemplate: "api/{controller}/{action}",                defaults: new { id = RouteParameter.Optional }            );         }    }}

Global文件的修改:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Routing;using System.Web.Http;using System.Web.Http.WebHost;using System.Web.SessionState;namespace sccod{    public class MvcApplication : System.Web.HttpApplication    {        public override void Init()        {            //注册事件            this.AuthenticateRequest += WebApiApplication_AuthenticateRequest;            base.Init();        }        void WebApiApplication_AuthenticateRequest(object sender, EventArgs e)        {            //启用 webapi 支持session 会话            HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);        }        protected void Application_Start()        {            AreaRegistration.RegisterAllAreas();            GlobalConfiguration.Configure(WebApiConfig.Register);//注册api路由            RouteConfig.RegisterRoutes(RouteTable.Routes);        }    }}

控制器程序:

using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Net.Http;using System.Web.Http;using System.Web;namespace sccod.Controllers{    public class OperatorController : ApiController    {        [System.Web.Http.HttpGet]        [System.Web.Http.HttpPost]        public object test()        {            if (HttpContext.Current.Session["user"] == null)            {                HttpContext.Current.Session["user"] = System.Web.HttpContext.Current.Session.SessionID;            }            var tem = new            {                t1 = 1,                t2 = "ddf",                t3 = DateTime.Now.ToString(),                t4 = true,                t5= HttpContext.Current.Session["user"]            };            return tem;        }    }}

访问地址:http://localhost:3472/api/operator/test

原创粉丝点击