시나리오 : password
, address
, preference
, roles
:ApiController에 대해 여러 POST 동작을 수행 할 수 있습니까?
User
클래스는 속성의 여러 그룹이 있습니다.
우리는 다른 아약스 (2) 사용자 프로파일, 사용자가에서 (3) 역할은 (1) 사용자 암호를 업데이트 호출해야합니다.
모든 자습서 및 예제는 단지를 업데이트 한 POST 액션을 보여줍니다 전체 사용자 클래스. 제 질문은 클래스의 일부만 업데이트 할 수있는 방법입니다. 사용자 암호를 업데이트 할 때
예를 들어, 우리는 :
- 표시 텍스트 상자는 사용자 입력에서 새 암호를 수집합니다.
- WebAPI POST 조치에 userId와 함께 새 암호 (예 : {id = 3, newPassword = xxxxx}) 만 POST하는 Ajax 호출을 작성하십시오.
- 이 작업을 수행하면 사용자의 암호 만 업데이트됩니다.
하나 개의 솔루션 : (가장 쉬운 생각할 수)
- 전화 사용자 ID와
GET
동작이 사용자 - 업데이트의 값으로 사용자 데이터에 비밀번호에 대한 모든 데이터를 검색 할 웹 사용자 입력에서 가져옴
- User 클래스의 모든 속성을 포함하는 업데이트 된 데이터로
POST
작업을 호출하십시오. - 그
POST
작업은 암호 만 변경된다는 사실을 모른 채 전체 데이터를 업데이트합니다.
이점 : ApiController
에 대해 하나의 POST
조치가 필요합니다.
단점 : 우리는 Ajax를 두 번해야합니다.
ApiController
에 POST
개의 액션이 여러 개있을 수 있습니까? 예 : PostPassword(userId, password)
, PostProfile(userId, profile)
및 PostRoles(userId, roles)
.
이렇게하면 암호를 ApiController
으로 보내려면 PostPassword
이라고 만 부릅니다. 클라이언트 측에서는 오직 하나의 Ajax 호출 만있을 것입니다. 업데이트를 수행 할 서버에 있습니다. 이익은 물론 인터넷을 통해 전송되는 축소 된 데이터입니다.
가능한 경우 모든 POST
번의 호출을 ApiController
의 해당 작업으로 안내하는 올바른 방법은 무엇입니까?
우리를 도와주세요. 다들 감사 해요.
답장을 보내 주셔서 감사합니다. 그러나 편집 양식에 대한 모든 사용자 데이터를로드 할 필요는 없습니다. 암호를 업데이트해야하는 경우 입력을 허용하는 텍스트 상자 만 표시됩니다. uerId와 새 암호가있는 json 만 있으면 충분합니다. 따라서 전체 사용자 데이터의 일부를 POST하고 부분 업데이트를 얻으려면 어떻게해야합니까? – Blaise
귀하의 경우, 당신은 단지 서버에 암호를 다시 게시, 사용자의 다른 속성은 null이됩니다. 각 속성이 null이 아닌지 확인하여 데이터베이스를 업데이트하는 코드는 null이 아닌 모든 속성이 업데이트됩니다. –