2017-01-18 9 views
0

asp.net core、c#およびMVC 6で新しく追加されました。コントローラにajaxを介してデータを送信しようとしています。jQuery、Ajax、およびMVC6パラメータは、ajaxリクエスト後にnullです。

function ajaxMethodData() { 

$.ajax({ 
    url: "AjaxWithData", // hard coded for testing 
    type: "POST", 
    data: JSON.stringify({ username: "NeXT405" }), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 

    success: function() { 
    }, 
    error: function() { 
     alert('error'); 
    } 
}); 

}

コントローラにおける方法は、このようになります。このメソッドは、ajaxリクエストによって呼び出されます。

[HttpPost] 
    public IActionResult AjaxWithData([FromBody] string username) 
    { 
     Debug.WriteLine(username); 

     return Json(new { success = true }); 
    } 

enter image description here

データが正しい送信されているように見えます。

正しく理解していれば、文字列は渡されたデータの値になります。しかしそれはまだヌルです。

私はまた、戻り値として(そしてデータ型なし)voidで試しました。

<input type="button" value="Fatty2" onclick="ajaxMethodData()" /> 

私は間違っていますか?

+0

のですか?あなたのMVCメソッドは "WebAPI"メソッドではないのですか? –

+0

あなたは成功の方法で何もしていません。 – evolutionxbox

答えて

0

ただ、変数名が基本的なタイプのために必要されていないので、体内から1つのパラメータを取得することだけを許可する

data: JSON.stringify({ username: "NeXT405" }), 

data: JSON.stringify("NeXT405"), 

にWEBAPIを変更。

だけチェック:あなたはパラメータの[FromBody]を追加している理由https://www.asp.net/web-api/overview/advanced/sending-html-form-data-part-1

を最後の例は、まさにあなたのケース

+0

ありがとうございます!それは完全に動作します。 – NeXT405

関連する問題