WebAPI POST GET

简而言之,在WEBAPI中采用GET方法方法时在接受参数的时候会在参数前申明 [fromuri]标注从uri中获取如:

[HttpPost]

public IHttpActionResult AddProductToCart_Details([fromuri]int productId,[fromuri]int shoppingCartTypeId,[fromuri]int quantity,[fromuri]Loginstatus login)

        {

.......................

}





模型

namespace Nop.Plugin.Misc.WebApiServices.Models

{

    public class LoginStatus

    {

      

        public int userid { set; get; }

        public string logguid { set; get; }

    }

}

测试url:

http://192.168.1.127:8089/api/shoppingcart/AddToCart?productId=59&shoppingCartTypeId=1&quantity=10&userid=1&logguid=729b37c4-63e1-4961-9615-dcf9f314a814

可以成功,

当我改为post时,原本想当然的把[httpget]改为[httppst]再把参数接受都改为frombody,但是出错了 显示为无法绑定参数,后查看资料发现 在除说中只能还怎对一个参数启用frombody 标注,后将参数重新进行封装

    [HttpPost]

        public IHttpActionResult AddProductToCart_Details([FromBody]AddToCart add)

        {

......

}

模型

namespace Nop.Plugin.Misc.WebApiServices.Models

{

    public class LoginStatus

    {

      

        public int userid { set; get; }

        public string logguid { set; get; }

    }

}



   public class AddToCart

    {

        private LoginStatus _login;

        public int productId { set; get; }

        public int shoppingCartTypeId { set; get; }

        public int quantity { set; get; }

        public LoginStatus login { set{_login=value;} get{return _login;} }

    }

用于测试post的表单

<body>

  <form method="post" action="http://localhost:15536/api/shoppingcart/AddToCart">

    <input type="text" name="productid" value="59">

    <input type="text" name="shoppingcarttypeid" value="1" >

    <input type="text" name="quantity" value="1">

    <input type="text" name="login.userid" value="1">

    <input type="text" name="login.logguid" value="729b37c4-63e1-4961-9615-dcf9f314a814" >

    

    <input type="submit" />

  </form>

</body>

唯一注意是在传递login中的参数时命名标注为login.userid login.logguid 否则无法进行绑定

 

你可能感兴趣的:(post)