私はASP.NET Coreを初めて使用しています。コントローラにビューモデルを投稿しようとしています。ASP.NETコアでJSONを使用してコントローラにモデルを投稿する
モデル:
public class ToolModel
{
public ToolModel() { }
public string text { get; set; }
public string type { get; set; }
public string name { get; set; }
}
コントローラ
[HttpPost("/Utilities/Tool/{type}/{process}")]
public IActionResult ToolProcess(ToolModel model, string type, string process)
{
var test = model.text;
var result = new Services.ToolServices().exec(model, type, process);
return Ok(result);
}
ビュー
var model = {
text: "Test_text",
type: "test",
name: "test_name"
}
function post(model) {
var url = '/Utilities/Tool/Test/Edit';
$.ajax({
url: url,
data: JSON.stringify(model),
type: 'POST',
success: function() {
alert("all good");
},
error: function() {
alert(":(");
}
});
}
私は現在、Bを取得することができますよ私のコントローラ内のレークポイントは、モデル値はnullです。私は[FromBody]をコントローラ引数に追加するなど、このプロセスのさまざまな組み合わせを試しました。私が[FromBody]を追加すると、私のブレークポイントにはまったく到達せず、リクエストは失敗し、 "No element found"というエラーが表示されます。
最初は、私のインデックスコントローラで私のビューにToolModelモデルを渡そうとしましたが、私のビューからモデルにデータを接続する方法を理解できませんでした(設定しようとしました@ Model.text = "test "成功なし)。それはうまくいきませんでしたので、モデルをJavaScriptオブジェクトとして複製しました。私が読んだことに基づいて、jsonを投稿すると自動的にモデルにバインドされるはずです。
私はASP.NET Coreの初心者です。私はGoogleに何が知られていなくても、投稿のすべてのバリエーションは私のために失敗します。私のモデルを使って、私のビューから私のコントローラにデータをどのように取得するのですか?みんな違ったやり方をしているようだ。
[DataMemberプロパティ]を使用してToolModelの[のDataContract]とクラスと各プロパティを飾ります。メソッド署名のToolModelの前で[FromBody]を追加して、もう一度やり直してください。 –
私はこれを試して、同じ "no element found"エラーとajaxエラーを取得します。 – Sunden