web api post注意事項


 

 

黃色笑話

近期一個項目需要使用到web api

 在使用過程中,對應get請求方式的使用基本沒出什么問題

但是對於post請求狀況百出。

今將遇到的的問題列出。以作借鑒。

 問題  -----post方式服務器端接收值為null

 

 1. 多個參數需要post過去

  ajax代碼

       如下

js代碼

function login() {
                    $.ajax({
                        url: "/api/Login",
                        type: "post",
                        dataType: "json",
                        data: { "name": document.getElementById("name").value, "Password": document.getElementById("pwd").value },
                        success: function (data) {
                            isLogin(data)
                            //createDb();
                        }
                    }).fail(
                    function (xhr, textStatus, err) {
                        alert('Error: ' + err);
                    });

                }

c#代碼

  public UsersModel POST(string name, string Password)
        {
            //var a = ModelLogin.user(name.name, name.Password);
          
        }

  報錯接收不到值

原因 。 post方式只能接受一個參數而且必須放在

FromBody 里用FromBody特性標識

正確代碼如下

        public UsersModel POST([FromBody]UsersModel name)
        {
            var a = ModelLogin.user(name.name, name.Password);
            return a;
        }

  需要將 

UsersModel定義為類

2.需要post list 對象
這個直接寫js正確代碼

          $.ajax({
                    url: "/api/Exams",
                    type: "post",
                    dataType: "json",
                    contentType: 'application/json; charset=utf-8',
                    data: JSON.stringify(json),

                    success: function (data) {
                        alert(data);
                    }
                }).fail(
          function (xhr, textStatus, err) {
              alert('Error: ' + err);
          });
              

  注意事項。

data數據建議直接寫js對象,對應c#建立的對象。

喜歡拼接方式的key需要留空

參考資料

http://stackoverflow.com/questions/14779679/jquery-posts-null-instead-of-json-to-asp-net-web-api

http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1#sending_simple_types


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM