Post用Post方法,参见下面的代码:public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }        // POST api/values
        public void Post(string value)
        {
        }        // PUT api/values/5
        public void Put(int id, string value)
        {
        }        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }代码来自:
http://www.codeproject.com/Articles/588909/ASP-NET-WEB-API-Basics-MVC-4

解决方案 »

  1.   


            /// <summary>
            /// 获取推送key
            /// </summary>
            [HttpPost]
            [Route("Android/{prefix}/Clients")]
            public string Post(string prefix,string deviceId)
            {
                string pushKey = "h3KWPLcfTJo7ViP6A6NkTcTgcg5o3MbgagsowdQcmQR8bJCBjSTm2jwVwn3E08fN";
                return pushKey;
            }
    前端调用
    $.post("Android/edu/Clients",{deviceId:101})  //取不到
    $.post("Android/edu/Clients?deviceId=101")  //这样没问题
    这是为毛啊?????
      

  2.   

    web api,当用post传数据里,
    后台要用一个class来封装的,要不然获取不到的
    http://weblog.west-wind.com/posts/2012/May/08/Passing-multiple-POST-parameters-to-Web-API-Controller-Methods
      

  3.   

    总不能每个Post方法都写一个类吧
      

  4.   

    是的,Post方法只接受一个参数。你需要加入一个类。C#中写类已经很容易了class PostParameters
    {
         int Id{get;set;}
         ....
    }
      

  5.   


    目前来说,web api 是这样的
      

  6.   

    那就写多个参数类吧。用时用路把多个post分开,避免冲突
      

  7.   

    为什么不用Newtonsoft.Json.Linq.JObject作为post的参数?
            [HttpPost]
            public ApiResult SaveProject(JObject jObject)
            {
      

  8.   

    我的理解是这样的,如果客户端可控,就是说是可以封装访问参数的,那封装成为类,每次访问前转换为Json串来访问,这个可以,只是个工作量的问题。但是如果客户端不可控,是普通的Httppost访问,这个没地方来封装访问类,也没得转换json串,这种情况呢?