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