これは私の最初のasp.netコアアプリケーションですので、おそらく何かが分かりませんが、私は他のStackOverflow答えを見てきました。そこの解決策は私を助けませんでした。私は、サービスファブリック上で実行しているasp.netコアmvcアプリケーションを持って、私はコントローラに文字列を投稿しようとしています。文字列はもともとjsonオブジェクトの配列です。asp.net core mvc appへの投稿はnullボディとヌル入力パラメータ
私のAjaxのポスト:他の側に
var sendThis = { "operations": JSON.stringify(operations) };
$.ajax({
url: '/Home/Execute',
type: 'POST',
data: sendThis,
dataType: "json",
contentType: 'application/json; charset=utf-8',
error: function (xhr) {
$("#save-footer-text").val("Saving failed. Please contact an administrator");
},
success: function (result) {
$(".save-footer").addClass("slider");
},
async: true
});
私のコントローラ。私は別のスタックオーバーフローの答えからストリームのものを取ったが、それが完了したら空の文字列を返します。他のstackoverflowの答えから
[HttpPost]
public IActionResult Execute([FromBody] string operations /*this is null*/)
{
var i = 5;
string documentContents; //this will be an empty string.
Request.Body.Position = 0;
using (Stream receiveStream = Request.Body)
{
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.Unicode))
{
documentContents = readStream.ReadToEnd();
}
}
Console.WriteLine(i);
return new OkResult();
}
、私はまた、trueにする伝統的なセットに投稿しようとした、と私は変更コントローラと、この
public class M
{
public string status { get; set; }
public string appName { get; set; }
public string startTime { get; set; }
public string endTime { get; set; }
public string description { get; set; }
public string operation { get; set; }
}
のように、モデルに業務を投稿してみました公共IActionResult Execute([FromBody] List<M> operations)
に私はJavascriptを要求ペイロードであることを報告クロームツールを使用して、リクエストを送信しないことをチェックしました:
O perations = ここに私のjsonの文字列
私もこれをワイヤーで見ています。
this答えて、私はまた、JsonSettingsを更新しようとしましたが、それもどちらか役に立たなかった。
asp.netコアパッケージでは1.0.0-rc2-final、サービスファブリックでは5.1.150を使用しています。
私はここで何が欠けていますか?申し訳ありませんが、答えが本当に些細な場合。何か助けてくれてありがとう。
あなたは返信でコンテンツを返信していません。 'return Ok(documentContents);' – sudheeshix
コントローラの空の文字列です。私の問題は、私に来るデータがnullだということです。 – Kolichikov
アプリケーションはサービスファブリックで実行する前にローカルで動作していますか? – Win