aurelia-fetch-client를 사용하여 ASP.NET 핵심 웹 응용 프로그램으로 Guids 배열을 보내고 있지만 서버 측에서는 모델 바인더가 가져 가지 않습니다. notificationIds
의 목록은 null
입니다. 그러나 내가 Swagger 또는 CURL을 통해 요청을하면 잘 바인딩됩니다.Guides의 모델 바인딩이 아닌 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에서 아무 것도 설정하고 싶지 않습니다. 사실 guids 목록을 게시 할 때 서버의 모델 바인더가 문제를 해결하지 못합니다. – MrBliz
Ah. 나는 그 질문을 완전히 잘못 읽었다. 미안합니다. –