C# ASP.NET MVC项目内使用ApiController

1.在App_Start文件夹新建WebApiConfig.cs文件,建立webApi路由的注册方法。

cs 复制代码
using System.Web.Http;

namespace PrivilegeManager
{
    public class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
                );
        }
    }
}

2.修改Global.asax启动项,注册webApi路由(注意要在MVC路由之前注册)。

cs 复制代码
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace PrivilegeManager
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);//api路由注册要在mvc前面

            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);//mvc路由注册
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}

3.建立API Controller

cs 复制代码
using System;
using System.Collections.Generic;
using System.Web.Http;

namespace PrivilegeManager.Controllers
{
    public class DataApiController : ApiController
    {

        [HttpPost]
        //此方法实际访问地址:ip地址/api/DataApi/GetTest
        public Object GetTest(QueryCommon query)
        {
            //入参是json格式,会自动转成实体。返参的实体也会自动转成json格式
            list = List<实体>();
            return list;
        }


    }
}
相关推荐
绿荫阿广6 小时前
互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(五):使用.NET为树莓派开发Wifi配网功能
c#·.net
ou.cs9 小时前
c# :this() 和 :base()区别
开发语言·c#
汪小白JIY12 小时前
【C#】异步和多线程
c#·thread·async·task·threapool
宝桥南山13 小时前
DeepSeek - 尝试一下GitHub Models中的DeepSeek
microsoft·ai·微软·c#·github·.net
lljss202020 小时前
C# 一个解决方案放一个dll项目,一个dll测试项目 ,调试dll项目的源码
c#
ghost1431 天前
C#学习第27天:时间和日期的处理
开发语言·学习·c#
jason成都1 天前
c#压缩与解压缩-SharpCompress
开发语言·c#
傻啦嘿哟1 天前
从零开始:用Tkinter打造你的第一个Python桌面应用
开发语言·c#
CodeCraft Studio1 天前
PDF处理控件Aspose.PDF教程:在 C# 中更改 PDF 页面大小
前端·pdf·c#
InCerry1 天前
.NET周刊【5月第4期 2025-05-25】
c#·.net·.net周刊