シナリオ:
User
クラスには、プロパティのいくつかのグループがあります:password
、、、。address
preference
roles
(1)ユーザーパスワード、(2)ユーザープロファイル、(3)ユーザーの役割を更新するには、さまざまなAjax呼び出しが必要です。
すべてのチュートリアルと例は、Userクラス全体を更新するための1つのPOSTアクションのみを示しています。私の質問は、クラスの一部のみを更新する方法です。
たとえば、ユーザーパスワードを更新する場合、次のようにします。
- ユーザー入力から新しいパスワードを収集するためのテキストボックスを表示します。
- 新しいパスワードとuserId({id = 3、newPassword = xxxxx}など)のみをWebAPIPOSTアクションにPOSTするAjax呼び出しを行います。
- このアクションでは、ユーザーのパスワードのみが更新されます。
1つの解決策:(考えるのが最も簡単)
- userIdを使用してアクションを呼び出し、
GET
ユーザーのすべてのデータを取得します - Webユーザー入力から取得した値でユーザーデータのパスワードを更新します
POST
Userクラスのすべてのプロパティを含む更新されたデータを使用してアクションを呼び出します。- この
POST
アクションにより、パスワードのみが変更されたことを知らなくても、データ全体が更新されます。
利点:POST
に必要なアクションは1つだけApiController
です。
欠点:Ajaxを2回実行する必要があります。
POST
では、1つのアクションで複数のアクションを実行できる可能性はありApiController
ますか?たとえばPostPassword(userId, password)
、、、PostProfile(userId, profile)
およびPostRoles(userId, roles)
。
このようにPostPassword
、パスワードをに送信するためにのみ呼び出しますApiController
。クライアント側では、Ajax呼び出しは1つだけです。更新を行うのはサーバー上です。もちろん、インターネットを介して転送されるデータが削減されるという利点もあります。
可能であれば、すべての異なるPOST
呼び出しを対応するアクションに向ける正しい方法は何ApiController
ですか?
助けてください。皆さん、ありがとうございました。