aurelia-fetch-clientを使用してASP.NETコアWebアプリケーションにGuidsの配列を送信していますが、サーバー側ではモデルバインダーがそれを取得しませんnotificationIds
のリストはnull
です。しかし、私がSwagger、またはCURLを通して要求を行うとき、それはちょうどうまく結びつきます。GuidedのモデルバインディングAsp.Netコアのリスト
GUIDの書式に問題があった場合に備えて、私のコントローラメソッドのシグネチャを変更して文字列のリストを受け入れるようにしましたが、同じ問題です。
JS
var body = {notificationIds : this.notifications.map(x => x.notificationId) };
console.log("Dismissing All notifications");
await this.httpClient.fetch('http://localhost:5000/api/notifications/clear',
{
method: 'POST',
body: json(body),
headers: {
'Authorization': `Bearer ${localStorage.getItem('access_token')}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'X-Requested-With': 'Fetch'
},
mode: 'cors'
}).then(response => {
if(response.status == 204){
//Success! Remove Notifications from VM
}
else{
console.log(response.status)
}
})
コントローラメソッド
// POST: api/Notifications
[HttpPost]
[Route("clear")]
[ProducesResponseType((int)HttpStatusCode.NoContent)]
[ProducesResponseType((int)HttpStatusCode.BadRequest)]
public async Task<IActionResult> Post([FromBody]List<string> notificationIds)
{
if (notificationIds.IsNullOrEmpty())
{
return BadRequest("No notifications requested to be cleared");
}
var name = User.Claims.ElementAt(1);
await _notificationRepository.Acknowledge(notificationIds, name.Value);
return NoContent();
}
興味深いのは、クロム(V62)は何も掲載示さないということです。
しかし、フィドラーは
返されたデータは、VMのどのプロパティにも表示されないように設定していません。 –
私はVM上で何も設定したくありません。それは、私はguidのリストを投稿すると、サーバー上のモデルのバインダーは、問題をそれらをピックアップしないという事実です – MrBliz
ああ。私はその質問を完全に間違って読んだ。申し訳ありません。 –