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

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

 

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

  1. [HttpPost]
  2. // POST api/<controller>
  3. public string AdminLogin(string userName,string passWord)
  4. {
  5. return "";
  6. }

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

3.解决方案一:

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

  1. public class AdminLogin
  2. {
  3. public string UserName { get; set; }
  4.  
  5. public string PassWord { get; set; }
  6. }

②修改action参数配置。

  1.    [HttpPost]
  2. // POST api/<controller>
  3. public string AdminLogin([FromBody]AdminLogin adminLogin)
  4. {
  5. return adminLogin.UserName;
  6. }

③前端调用方法:

  1. $.ajax({
  2.  
  3. type: "POST", url: AdminApi.AdminLogin,
  4.        data: {UserName"xxx",PassWord:"XXX"},
  5.        success: function (data) {
  6. //处理方法
  7.  
  8. }
  9. });

  

  

4.解决方案二:

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

  1. [HttpPost]
  2. // POST api/<controller>
  3. public string AdminLogin([FromBody]dynamic adminLogin)
  4. {
  5. string userName = adminLogin.UserName;
  6. string passWord = adminLogin.PassWord;
  7. return userName;
  8. }

②修改前端调用方式:

  1. var obj = { UserName: username, PassWord: password };
  2.  
  3. //调用api验证方法
  4. $.ajax({
  5.  
  6. type: "POST", url: AdminApi.AdminLogin,
  7.        data: JSON.stringify(obj), contentType: "application/json",
  8.        success: function (data) {
  9. //内部实现方法
  10.  
  11. }
  12. });

  

  

 

在webapi中为Action使用dynamic参数实现Post方式调用的更多相关文章

  1. webapi中Route标签定义可选参数

    Optional URI Parameters and Default Values You can make a URI parameter optional by adding a questio ...

  2. Asp.Net Core WebAPI入门整理(四)参数获取

    一.总结整理,本实例对应.Net Core 2.0版本 1.在.Net Core WebAPI 中对于参数的获取及自动赋值,沿用了Asp.Net  MVC的有点,既可以单个指定多个参数,右可以指定Mo ...

  3. Struts2学习笔记(六)——Action处理请求参数

    在struts2框架中关于Action处理请求参数有两种方案(三个方式),表单属性的名称应该和在Action类中定义的成员属性或者在JavaBean中定义的成员属性名称一样: 1.属性驱动 1)直接在 ...

  4. 关于mvc、webapi中get、post、put、delete的参数

    webapi中post提交的数据必须是一个类,get提交的数量无所谓 多种参数get时,参数名不能相同: 在能通过c#的校验的前提下,参数名.参数数量不能全完相同 public string Get( ...

  5. 在MVC或WEBAPI中记录每个Action的执行时间和记录下层方法调用时间

    刚才在博客园看了篇文章,http://www.cnblogs.com/cmt/p/csharp_regex_timeout.html  突然联想到以前遇到的问题,w3wp进程吃光CPU都挂起IIS进程 ...

  6. WebApi官网学习记录---webapi中controller与action的选择

    如果framework找到一个匹配的URI,创建一个包含占位符值的字典,key就是这些占位符(不包括大括号),value来自URI或者默认值,这个字典存储在IHttpRouteData对象中.默认值可 ...

  7. 关于在Struts2的Action中使用domain模型接收参数的问题

    最近在搭建一个最新的ssh2框架,今天在调试的时候,发现了一个以前一直没有注意过的问题,我在Action中使用域模型的方式去接收jsp画面中的参数的时候,发现参数总是接收不完,头一次遇到这种问题,现在 ...

  8. C# -- 等待异步操作执行完成的方式 C# -- 使用委托 delegate 执行异步操作 JavaScript -- 原型:prototype的使用 DBHelper类连接数据库 MVC View中获取action、controller、area名称、参数

    C# -- 等待异步操作执行完成的方式 C# -- 等待异步操作执行完成的方式 1. 等待异步操作的完成,代码实现: class Program { static void Main(string[] ...

  9. Action获取请求参数的3中方式

    方式一:Action本身作为Model对象,通过属性注入(Setter)方法讲参数数据封装到Action中 具体为:在Action中,提供和参数名相同的几个属性,并为其提供set方法,那么,该参数会被 ...

随机推荐

  1. Mybatis第四篇【多表连接】

    Mybatis多表连接 我们在学习Hibernate的时候,如果表涉及到两张的话,那么我们是在映射文件中使用<set>..<many-to-one>等标签将其的映射属性关联起来 ...

  2. 常用Java API(转)

    一. java.io.BufferedReader类(用于从文件中读入一段字符:所属套件:java.io) 1. 构造函数BufferedReader(java.io.FileReader FileR ...

  3. 王者荣耀_KEY

    WZRY 为了排位赛的Cjj神,最近耗尽气力来打WZRY. Cjj神最近有N局预约的排位赛,其中第i局需要耗时Li的时间.因为浓浓的Gay情,Cjj神不能改变这些排位赛的的顺序.作为一个很有(mei) ...

  4. Postman 串行传参和动态传参详解

    Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 用Postman做接口测试的时候,要把多条用例一起执行,就需要把用例连接起来,一次性执行 目录 串行传参 动态传参 使用 ...

  5. iOS Storyboard约束详解

    链接:http://www.jianshu.com/p/b88c65ffc3eb 约束,就是指--此处略去1万字--都懂的,就不说了.直接进入实战环节. 本文的控件约束都是围绕着UITableView ...

  6. JAVA设计模式总结之23种设计模式

    上一篇总结了设计模式的六大原则<JAVA设计模式总结之六大设计原则>,这一篇,正式进入到介绍23种设计模式的归纳总结. 一.什么是设计模式                         ...

  7. 用ES6巧妙的解决传统面试中的算法小问题!

    最近自己也在准备面试,在复习算法的时候,机智的用了一波ES6.一起来瞧瞧吧! 1.数组的去重 var arr=str.split(''); for(var i=0;i<arr.length-1; ...

  8. 分享基于分布式Http长连接框架--设计模型

    追求简单的设计. 也许你的设计功能很强大,但能够在满足你需求的前提下尽量简单明了设计. 当你的设计过于复杂的时候想想是不是有其它路可以走,你站在别人的角度想下,如果别人看了你的设计会不会心领神会,还是 ...

  9. 聊聊Java语言中的单例

    package com.xinke.mybatis.test; public class TestSingleton { private static TestSingleton ts = null; ...

  10. SqlServer和Oracle中一些常用的sql语句3 行列转换

    --217, SQL SERVER SELECT Cust_Name , MAX(CASE WHEN Order_Date ='2009-08-01' THEN AR END) "2009- ...