我的一个控制器接受不同的 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);
}
它工作正常,除了在一种情况下:当我从用户中删除所有角色时。在这种情况下,发送过来的 json 是
{Id: 1, Roles:[]}
然后userinfo.Roles != null
返回 a false
,_repository.UpdateRolesForUser(user.UserName,roles);
因此永远不会到达。
我的问题:如何检测 aRoles:[]
和“真空”之间的区别?有类似has
or的功能exists
吗?
------更新----- 这个控制器是一个ApiController
并且代码在PUT
动作中。因此,所有类型的json都必须输入这个单一的动作。否则,我们可以对不同的操作进行 Ajax 调用会非常方便。