2017-07-16 4 views
-1

入力変数(a)がNullに設定されていない場合、次のAjaxコードはアクションをトリガーしません。Controll APIの変数がNullと等しくない場合、Ajaxは返しません

Ajaxコード:

var ab = "Chocolate Smoothies ya know?"; 

$("#customerSubmit").submit(function (e) { 

    e.preventDefault(); 

    $.ajax({ 
     url: "/api/Booking/lander", 
     method: "post", 
     data: { a: ab } 
    }) 
}); 

次の私のコントローラのコード:

[HttpPost] 
public void lander(string a) 
{ 
    System.Diagnostics.Debug.WriteLine(a); 
} 

そして、私が受信した入力がnull、nullに設定しないでください。

ブレークポイントがトリガされたスクリーンショット:

enter image description here

私はタイプ/メソッドの/ etcを使用しました。..何が

アップデートを動いていないようにみえ:

私も次のことを試してみました使用しない:

enter image description here

enter image description here

あなただけのエンドポイントで [FromBody]属性を使用する必要が
+0

それはあなたのモデルが結合だけの問題だった:あなたは{ '送らa:ab} 'をクライアント側から返しますが、'(文字列a) 'でバインドされています。 {取得または設定;}もし '' Customer'プロパティパブリック文字列が含まれ、例えば、モデルクラスを定義する必要があり '次に、パラメータとして' Customer'を使用する 'lander'方法を変更します。 –

答えて

0

$.ajax({ 
    url: "/api/Booking/lander", 
    method: "post", 
    data: {a: ab} 
}) 

public void lander([FromBody]string a)

参考:https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api

+0

私は申し訳ありませんが、それはうまくいきませんでした:( –

+0

がローカルにテストおよび例を変更し、あなたはJSONオブジェクトを送信する必要があります – hardkoded

関連する問題