私のコントローラーの 1 つは、異なる json データを受け入れて、ユーザー情報を更新します。
いくつかjson
はパスワードを更新することです
{Id:1, NewPassword:'xxx'}
いくつかjson
は、ユーザーの役割を更新することです
{Id:1, Roles:['admin', 'guest']}
コントローラーに設定したのは、 NewPassword と Roles に値があるかどうかを検出することです。
if (userinfo.NewPassword != null)
{
_repository.SetNewPassword(user.UserName, serinfo.NewPassword);
}
if (userinfo.Roles != null)
{
string[] roles = userinfo.Roles.ToArray();
_repository.UpdateRolesForUser(user.UserName,roles);
}
ユーザーからすべてのロールを削除するという1つの条件を除いて、正常に機能します。その場合、送信されるjsonは
{Id: 1, Roles:[]}
その後、 aをuserinfo.Roles != null
返すため、到達することはありません。false
_repository.UpdateRolesForUser(user.UserName,roles);
Roles:[]
私の質問: aと「true null」の違いを検出する方法は? またはのような機能はありますhas
かexists
?
-----更新----- このコントローラーはApiController
で、コードはPUT
アクションにあります。したがって、すべてのタイプの json がこの単一のアクションを入力する必要があります。それ以外の場合は、さまざまなアクションに対して Ajax 呼び出しを行うことができれば非常に便利です。