반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Nginx Reverse Proxy
- Vue.config
- MSSQL 동적 쿼리
- Tomcat Error
- 리버스 프록시 예제
- 웹 자동화
- Selenium 설치
- javascript
- Visual Studio 강제 삭제
- Vue configureWebpack
- vue
- Selenium 환경
- vue3
- 디자인 패턴 사례
- Visual Studio 2015 설치
- 프록시 예제
- Visual Studio 패키지에 실패했습니다.
- Visual Studio 2015 삭제
- tomcat
- Visual Studio 재설치
- .NET Core
- spring
- Vue3 configureWebpack
- 웹 크롤링
- 업무 자동화
- Visual Studio 2015 강제 삭제
- SQLP
- vue.js
- MSSQL 문자열
- .NET Core Proxy
Archives
- Today
- Total
금백조의 개발 블로그
[.NET Core]JSON 전송시 Controller param null 에러 해결 본문
반응형
[문제]
.NET Framework에 구현된 기능을 .NET Core로 이관하는 중 문제가 발생
아래 예제처럼 ajax를 통해 Member Controller에 요청할 경우 JSON 데이터를 보냈음에도 불구하고 param(name, age)값이 모두 null이 되는 현상 발생
문제의 코드
[memberRegister Method]
function memberRegister() {
$.ajax({
type: "POST",
url: "/Member/Register",
data: '{"name": "' + $('#name').val() + '", "age": "' + $('#age').val() + '" }',
contentType: "application/json; charset=UTF-8",
dataType: "json",
success: function (response) {
},
failure: function (response) {
},
error: function (response) {
}
});
}
[Member Controller - Register Method]
public JsonResult Register(string name, int age)//name=null, age=null
{
var result = memberService.RegisterMember(name, age);
return Json(result);
}
[해결]
찾아보니 JSON의 value 형식과 Controller의 param 형식이 일치하지 않아 발생하는 현상이라 함...
즉 위 예제에서 JSON의 age는 string인데 Controller의 age는 int였던게 원인
또한 메소드 내에 파라미터 인자를 추가하여 받는 방식은 JSON으로 받아지지 않는다.
따라서 Member Model을 정의 후 바인딩하여 해결!
해결 코드
[memberRegister Method]
function memberRegister() {
$.ajax({
type: "POST",
url: "/Member/Register",
//age value 양옆의 "(큰따옴표)를 지워준다.
data: '{"name": "' + $('#name').val() + '", "age": ' + $('#age').val() + '}',
contentType: "application/json; charset=UTF-8",
dataType: "json",
success: function (response) {
},
failure: function (response) {
},
error: function (response) {
}
});
}
[Member Controller - Register Method]
public JsonResult Register([FromBody]Member member)//name="swan", age=10
{
var result = memberService.RegisterMember(Member.name, Member.age);
return Json(result);
}
[결론]
JSON 전송시 param 값이 null로 찍힐 경우 json value 값의 형식이 올바르게 전달됐는지 확인합시다!
[Reference]
[c# - web-api POST body object always null - Stack Overflow]
https://stackoverflow.com/questions/22741943/web-api-post-body-object-always-null
반응형
'Web > .NET Core' 카테고리의 다른 글
[.NET Core]Docker 디버깅 “디버그 어탭터를 시작하지 못했습니다.” 에러 발생 시 해결 방법(feat. Chat GPT?) (0) | 2023.02.24 |
---|---|
[.NET Core]유효성 에러 메세지가 뜨지 않는 Input validation 오류 해결(FluentValidation) (0) | 2023.02.20 |