MVC 웹 API, 오류:여러 매개 변수를 바인딩할 수 없습니다.
매개변수를 전달할 때 오류가 발생합니다.
"여러 매개 변수를 바인딩할 수 없음"
여기 내 코드가 있습니다.
[HttpPost]
public IHttpActionResult GenerateToken([FromBody]string userName, [FromBody]string password)
{
//...
}
아약스:
$.ajax({
cache: false,
url: 'http://localhost:14980/api/token/GenerateToken',
type: 'POST',
contentType: "application/json; charset=utf-8",
data: { userName: "userName",password:"password" },
success: function (response) {
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(jqXhr.responseText);
alert(textStatus + ": " + errorThrown + ": " + jqXhr.responseText + " " + jqXhr.status);
},
complete: function (jqXhr) {
},
})
참조: ASP의 파라미터 바인딩.NET Web API - [FromBody] 사용하기
메시지 본문에서 읽을 수 있는 매개변수는 최대 하나입니다. 그러면 작동하지 않습니다.
// Caution: Will not work! public HttpResponseMessage Post([FromBody] int id, [FromBody] string name) { ... }
이 규칙의 이유는 요청 본문이 한 번만 읽을 수 있는 버퍼링되지 않은 스트림에 저장될 수 있기 때문입니다.
나의 역점
그런 말이 있습니다.예상 집계 데이터를 저장할 모형을 생성해야 합니다.
public class AuthModel {
public string userName { get; set; }
public string password { get; set; }
}
그리고 신체에서 그 모델을 기대할 수 있도록 행동을 업데이트합니다.
[HttpPost]
public IHttpActionResult GenerateToken([FromBody] AuthModel model) {
string userName = model.userName;
string password = model.password;
//...
}
페이로드를 제대로 보낼 수 있도록 하는 것.
var model = { userName: "userName", password: "password" };
$.ajax({
cache: false,
url: 'http://localhost:14980/api/token/GenerateToken',
type: 'POST',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(model),
success: function (response) {
},
error: function (jqXhr, textStatus, errorThrown) {
console.log(jqXhr.responseText);
alert(textStatus + ": " + errorThrown + ": " + jqXhr.responseText + " " + jqXhr.status);
},
complete: function (jqXhr) {
},
})
언급URL : https://stackoverflow.com/questions/44599041/mvc-web-api-error-cant-bind-multiple-parameters
'programing' 카테고리의 다른 글
Changes의 Angular 1.5 구성요소가 작동하지 않음 (0) | 2023.10.04 |
---|---|
C의 기본 생성자 (0) | 2023.10.04 |
jquery UI 테이블과 trwidth로 정렬 가능 (0) | 2023.10.04 |
워드프레스 데이터베이스 $wpdb 대 get_option() (0) | 2023.10.04 |
Spring boot + Hibernate + JPA 트랜잭션 Entity Manager를 사용할 수 없습니다. (0) | 2023.10.04 |