在webapi中为Action使用dynamic参数实现Post方式调用

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在webapi中为Action使用dynamic参数实现Post方式调用相关的知识,希望对你有一定的参考价值。

原文:在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) 
             //内部实现方法

            
        );

  

  

 

 

以上是关于在webapi中为Action使用dynamic参数实现Post方式调用的主要内容,如果未能解决你的问题,请参考以下文章

不借助工具在浏览器中通过Web API执行Dynamics 365操作(Action)实例

Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action

Dynamics CRM 2015/2016 Web API:Unbound Custom Action 和 Bound Custom Action

[WebApi]返回动态列表dynamic

Dynamics CRM 2015/2016新特性之二十四:使用Web API执行操作

C#进阶系列——WebApi接口传参不再困惑:传参详解