zoukankan      html  css  js  c++  java
  • 在webapi中为Action使用dynamic参数实现Post方式调用

    1.在webapi中使用controller/action/id的路径配置,打开文件[App_Start] -[WebApiConfig]

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

     

    2.直接使用[HttpPost]过滤器,为action添加实现方法:

    [HttpPost]
    // POST api/<controller>
    public string AdminLogin(string userName,string passWord)
    {
      return "";
    }
    

      产生的问题:前端将“type”改为“Post”方式,无论如何都获取不到该方法。

    3.解决方案一:

     ①添加中转的对象类,用于存储参数。

        public class AdminLogin
        {
            public string UserName { get; set; }
    
            public string PassWord { get; set; }
        }
    

    ②修改action参数配置。

          [HttpPost]
            // POST api/<controller>
            public string AdminLogin([FromBody]AdminLogin adminLogin)
            {
               return adminLogin.UserName;
            }    
    

    ③前端调用方法:

          $.ajax({
    
                type: "POST", url: AdminApi.AdminLogin,
           data: {UserName:"xxx",PassWord:"XXX"},
           success: function (data) {
               //处理方法
    
                }
            });
    

      

      

    4.解决方案二:

    ①修改action参数为dynamic及方法调用:

          [HttpPost]
            // POST api/<controller>
            public string AdminLogin([FromBody]dynamic adminLogin)
            {
                string userName = adminLogin.UserName;
                string passWord = adminLogin.PassWord;
                return  userName;
            }
    

    ②修改前端调用方式:

            var obj = { UserName: username, PassWord: password };
    
            //调用api验证方法
            $.ajax({
    
                type: "POST", url: AdminApi.AdminLogin,
           data: JSON.stringify(obj), contentType: "application/json", 
           success: function (data) {
                 //内部实现方法
    
                }
            });
    

      

      

     

  • 相关阅读:
    Vim 在 windows 环境下的初步配置
    空间向量在任意平面的投影公式推导 (矩阵方法)
    jquery中获取元素的几种方式小结
    开源框架
    将插入的新行放入dataGridView的第一行
    go-mod 入门
    docker 常用启动命令
    golang str 首字母大写
    遇到过的几个难搞的问题
    jwt、session、oauth 异同
  • 原文地址:https://www.cnblogs.com/pressforward/p/7764946.html
Copyright © 2011-2022 走看看