在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