角度付きフォームのJSONデータをASP.NET5 MVC6コントローラアクションに投稿しようとしています。モデルのバインダーは動作していないようです。私がここで何が欠けているか分からない。ASP.NET5 MVC6でのモデルバインドの問題
マイASPコントローラー:
public class DefaultController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult SubmitTest(QTestViewModel model)
{
return Json("true");
}
}
マイ角度コントローラー:
angular.module("testActiveMq", [])
.controller("MqTestController", ["$scope", "$http", function ($scope, $http) {
// Submit Form
$scope.submitForm = function() {
debugger;
var formData = (this.data) ? angular.toJson(this.data) : null;
if (formData && this.qForm && this.qForm.$valid) {
$http({
url: "/Default/SubmitTest",
data: formData,
method: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8"
})
.then(function successCallback(response) {
debugger;
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
debugger;
// called asynchronously if an error occurs
// or server returns response with an error status.
});
}
};
}])
マイビューモデル:私は要求を行うと、HTTPヘッダーがある
public class QTestViewModel
{
public string MqBrokerUri { get; set; }
public string ClientId { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public int TotalRequests { get; set; }
public int MaxConcurrentRequests { get; set; }
public int DelayBetweenThreads { get; set; }
}
..
POST /Default/SubmitTest HTTP/1.1
Host: localhost:50877
Connection: keep-alive
Content-Length: 225
Accept: application/json, text/plain, */*
Origin: http://localhost:50877
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
Content-Type: application/json;charset=UTF-8
Referer: http://localhost:50877/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
私はスーパー何かを明らかに欠けているように私のフォームデータがそうのように見えます。..
{"MqBrokerUri":"ssl://broker-uri:1616?transport.acceptInvalidBrokerCert=true","ClientId":"MqLoadTest","UserName":"myunm","Password":"mypwd","TotalRequests":100,"MaxConcurrentRequests":10,"DelayBetweenThreads":1}
は、私は感じています。 JSONデータがモデルにバインドされないのはなぜですか?確かに私は単純な何かのためのカスタムモデルのバインダーが必要ないのですか?
を作業得るためにの公開IActionResult SubmitTest(ストリングモデル 'に' 'パブリックIActionResult SubmitTest(QTestViewModelモデル)を変更してみてください を使用していた を動作しませんでした) 'をクイックテストとして返し、それが戻ってくるものを確認してください –
また、' public IActionResult SubmitTest([FromBody] QTestViewModel model) ' –
' JsonRequestBehavior.AllowGet'がありません。 'return Json(" true "、JsonRequestBehavior.AllowGet);' –