C# asp.net core でMVC内でweb apiを作成し
そのURLに対してjs のfetch でbodyにjsonを指定して
投げた際にjsonのデータが取得できません
MVC内でweb apiをの方はvisual studioのデバッグでローカルサーバーをたて
ブレークポイントを設定すると止まるので通信は
できていると思うのですが、Request.Body;の中身を見ても
飛ばしたjsonの値がなく困っています。
C#
1 public class Test 2 { 3 readonly ITestList _testList; 4 public Test(ITestList testList) 5 { 6 _testList = testList; 7 } 8 9 public ServiceResult<TestList> GetList() 10 { 11 ///ここでJsonデータを受け取りたい 12 return _testList.getList(); 13 } 14 } 15
javascript
1 const json = { 2 test:"test", 3 testnumber:"10" 4 } 5 6 formData.append("files", e.target.files[0]) 7 8 const response = fetch("対象URL", 9 { 10 method:"post", 11 headers:{ 12 'Content-Type': 'application/json' 13 }, 14 body:JSON.stringify(json) 15 })
追記
OS: Windows10
asp.net core 5
Visual Studio 2019
C#
1 public class Test 2 { 3 readonly ITestList _testList; 4 public Test(ITestList testList) 5 { 6 _testList = testList; 7 } 8 //[FormBody]用に追加 9 public class Parameter 10 { 11 public string title { get; set; } 12 public string name { get; set; } 13 } 14 //引数に[FromBody]を追加 15 public ServiceResult<TestList> GetList([FromBody] Parameter test) 16 { 17 ///ここでJsonデータを受け取りたい 18 return _testList.getList(); 19 } 20 }
javascript
1 //jsonに名前をMVCのparameterが受け取れるように変更 2 const json = { 3 title:"test", 4 name:"10" 5 } 6 7 formData.append("files", e.target.files[0]) 8 9 const response = fetch("対象URL", 10 { 11 method:"post", 12 headers:{ 13 'Content-Type': 'application/json' 14 }, 15 body:JSON.stringify(json) 16 })
ご指摘があったのでMVCの方の引数に[FormBody]を追加したところ、デバッグでブレークポイントに止まらなくなりました。
回答1件
あなたの回答
tips
プレビュー