zoukankan      html  css  js  c++  java
  • WebApi一个控制器中定义多个Get方法。

    问题:怎样解决一个ApiController中定义多个Get方法或者Post方法?

    答:要想实现一个ApiController中定义多个Get方法或者Post方法,则需要在WebApiConfig类中的Register()中自定义路由规则,规则中显示指定action。

    示例:

           // Web API 路由
                config.MapHttpAttributeRoutes();
    
                //自定义指定action的路由。2017.11.11 14:56 added by longdb
                config.Routes.MapHttpRoute(
                     name: "WebApiTest",
                     routeTemplate: "api/{controller}/{action}/{id}",
                     defaults: new { id = RouteParameter.Optional }
                 );
    
                //默认路由规则。
                //config.Routes.MapHttpRoute(
                //    name: "WebApiTest",
                //    routeTemplate: "api/{controller}/{id}",
                //    defaults: new { id = RouteParameter.Optional }
                //);

    ApiController中两个Get方法:

     public class WebApiTestController : ApiController
        {
            [HttpGet]
            public string GetString()
            {
    
                string sql = @"SELECT TOP 10 0 cnt, '1' ck,no,name,object,score,id FROM dbo.infor 
                    WHERE id  IN(SELECT TOP 10 id FROM dbo.infor ORDER BY id)
                    UNION ALL
                    SELECT COUNT(id) cnt,'1' ck,'' no, '' name,'' object,'' score,'' id FROM dbo.infor";
                DataTable dt = DBHelper.DBExecuteByAdapter(sql);
                return JSONInterFace.DataTableToJsonWithJsonNet(dt);//.Rows.Count.ToString();
    
            }
    
            [HttpGet]
            public IHttpActionResult GetStudentInfor()
            {
                List<StudentModel> stlists = new List<StudentModel>();
                stlists.Add(new StudentModel { hno = "1001", hname = "龙大炳", hobject = "WebApi", hscore = "90" });
                stlists.Add(new StudentModel { hno = "1002", hname = "龙大炳", hobject = "Ajax", hscore = "80" });
                stlists.Add(new StudentModel { hno = "1003", hname = "龙大炳", hobject = "SignalR", hscore = "88" });
                return Json<List<StudentModel>>(stlists);//, Newtonsoft.Json.JsonSerializer.CreateDefault.stlists);
            }
    
        }

    注意点:不能定义重复名称的路由,路由名称必须唯一。

  • 相关阅读:
    ajax 跨域 Access-Control-Allow-Origin
    关于 请求参数 传递时 参数字符串里面包含 特殊符号的 解决~
    鼠标滚动事件
    js 选择随机数
    html 关于一行两列 高度不定的实现(不用table)
    关于php跨域操作(主域不同)
    写规范的javascript脚本代码 之for in
    windows服务等获取文件路径文件目录方法
    C#如何在控制台应用程序中加入配置文件
    easyui Microsoft JScript 运行时错误: “JSON”未定义
  • 原文地址:https://www.cnblogs.com/longdb/p/7819138.html
Copyright © 2011-2022 走看看