首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么GetUsersInRoleAsync-方法只在.cshtml中工作?

为什么GetUsersInRoleAsync-方法只在.cshtml中工作?
EN

Stack Overflow用户
提问于 2018-04-30 05:46:55
回答 1查看 1.6K关注 0票数 1

我正在开发一个with应用程序(.NET,而不是mvc和indivudual用户帐户),在这里我需要显示具有相应角色的用户。

有人能解释一下以下代码块之间的区别吗?

不使用Users.cshtml.cs

代码语言:javascript
运行
AI代码解释
复制
public class UsersModel : PageModel
{
    private UserManager<ApplicationUser> _userManager;
    public IList<ApplicationUser> admins { get; set; }

    public UsersModel(ApplicationDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    public async void OnGet()
    {
        admins = _userManager.GetUsersInRoleAsync("Admins").Result;
    }
 }

它在加载页面时崩溃并产生错误。

使用Users.cshtml工作

代码语言:javascript
运行
AI代码解释
复制
@page
@model UsersModel
@inject UserManager<ApplicationUser> _userManager
@{
 var admins = _userManager.GetUsersInRoleAsync("Admins").Result;
}

@foreach(var user in @Model.admins)
{
    <h3>@user</h3>
}

因此,在第一个代码块(不工作)中没有语法错误。当我运行代码时,在将这个帖子标记为副本之前,我收到的是'Object reference not set to an instance of an object.,我并不是在寻找关于修复这个特定错误的答案。

我想知道是否有人能告诉我..cshtml版本和..cs版本之间的区别?我想使用.cshtml.cs-版本,因为它更清晰。

编辑1

代码语言:javascript
运行
AI代码解释
复制
// not this
public UserManager<ApplicationUser> _userManager;

// but this
var _userManager serviceProvider.GetRequiredService<UserManager<ApplicationUser>>();
EN

回答 1

Stack Overflow用户

发布于 2018-04-30 06:02:19

在cs版本中,_userManager是空的,因为您没有将它作为依赖项注入。

在您指定的剃须刀版本中,要为该对象提供@inject。

您将需要向cs版本中添加一个构造函数,并注入_userManager依赖项,但是您使用的框架就是这样做的。

通常情况下,它看起来如下所示:

代码语言:javascript
运行
AI代码解释
复制
private readonly IUserManager<IApplicationUser> _userManager;

public UsersModel(
    IUserManager<IApplicationUser> userManager) {
    _userManager = userManager;
}

注入的依赖项通常在接口级别工作,而不是在具体类型级别工作。这将避免以后大量的代码重构,如果您需要更改某些具体的实现。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50101879

复制
相关文章
如何在本机搭建SVN服务器
http://www.visualsvn.com/server/download/
星哥玩云
2022/07/03
1.6K0
如何在Vuejs中实现页面空闲超时检测
您是否需要检查用户在Vue应用程序中的不活跃状态?如果用户在一段时间内处于非活动状态,则要自动注销该用户或显示一个计时器。通常,具有机密数据的系统(如银行)通常会实现这种功能。需求是监听3秒钟的不活动状态并显示带有10秒计时器的模态提示框。如果在10秒的会话中没有任何操作,请自动注销用户。
前端知否
2020/03/23
3.1K0
如何在Vuejs中实现页面空闲超时检测
DBnet检测加分类,提取身份证要素
向AI转型的程序员都关注了这个号👇👇👇 机器学习AI算法工程   公众号:datayx DBnet文本检测网络加入多分类,可以实现模型很小又能够区分类别的功能,然后可以根据检测框的标签快速提取目标字段,在端侧部署的话就能达到非常高的精度和效率。 1.标注数据 标注方法和标注目标检测的数据一样,一个框加一个标签 pip install labelImg ==1.8.6 安装完毕后,键入命令: labelImg 或者下载工具  labelImg.exe链接:https://pan.baidu.com/s/14
机器学习AI算法工程
2022/07/18
1.8K0
DBnet检测加分类,提取身份证要素
如何在 Kubernetes 环境中检测和阻止 DDoS 攻击
DDoS 即分布式拒绝服务攻击已经存在很久了,臭名昭著且难以处理(与任何其他攻击一样)。顾名思义,DDoS 攻击会导致应用程序或服务因资源超出其容量而对用户不可用,并导致应用程序崩溃或无响应。DDoS 是 DoS 的一种形式,其中攻击来自多个来源(机器人),通常分布在各个地理位置。想象一下,您的手机在很短的时间内收到数千个垃圾电话,而其中一个合法电话正在尝试与您联系。您如何确保您参加合法的通话?
用户5166556
2023/08/09
5370
如何在 Kubernetes 环境中检测和阻止 DDoS 攻击
如何在Nginx反向代理的CakePHP中检测SSL?
我使用nginx作为负载平衡器,后面是Apache应用服务器。由于SSL连接在负载平衡器处终止,因此$ b b $ b $ _ SERVER ['HTTPS'] $ b
习惯说一说
2019/08/01
1.1K0
如何在Nginx反向代理的CakePHP中检测SSL?
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
30.2K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
神思第二代身份证验证系统怎么拍照_神思二代身份证验证器没反应
神思官网下载相应的驱动和演示Demo,下载之前需要根绝设备序号在官网进行用户注册登录
全栈程序员站长
2022/08/03
1.4K0
神思第二代身份证验证系统怎么拍照_神思二代身份证验证器没反应
git命令中带有特殊符号如@
使用带用户密码clone的方式: git clone https://username:password@remote 当username和password中含有特殊符号会导致出错, 因为为http的请求,所以需要将特殊符号encode成url格式的 java使用: String c = java.net.URLEncoder.encode(".","utf-8"); System.out.println(c); 源文档 <http://blog.csdn.net/qq1142003960/article/
千往
2018/01/24
2.1K0
如何在时间序列预测中检测随机游走和白噪声
无论多么强大,机器学习都无法预测一切。例如与时间序列预测有关的领域中,表现得就不是很好。
deephub
2021/07/23
1.9K0
如何在时间序列预测中检测随机游走和白噪声
ObjectARX中反应器的使用
ObjectARX中反应器的使用 反应器机制是观察者模式(设计模式)的一种实现,在该机制下,有事件通知者和事件接收者,负责接收事件的称为反应器 反应器列表:在反应器可以从通知者处接收消息之前,必须显式地将反应器添加到通知者的反应器列表中。 反应器部分类继承关系 种类:
用户3519280
2023/07/24
4150
如何在Windows和Linux服务器中检测混淆命令
在目前的无文件恶意软件或网络犯罪领域中,命令行混淆已经是很常见的了。为了绕过基于签名的安全检测机制,红队渗透测试以及APT攻击活动都会使用各种专用的混淆/模糊技术。同时,许多代码混淆工具(即执行语法转换工具)都已开源,这也使得网络攻击者们对给定命令进行混淆处理变得越来越容易了。
FB客服
2019/06/18
3K0
如何在Windows和Linux服务器中检测混淆命令
Linux Shell脚本中获取本机ip地址方法
倘若有多个网卡,可能会出现多个不同网段的IP,这个时候如果还是执行上述命令就会返回多个IP,如下:
小菠萝测试笔记
2020/06/09
27.4K0
Linux Shell脚本中获取本机ip地址方法
查看本机IP
有时候,在登录到云服务器之后,可能需要在终端查询该服务器的ip。 之前我都是用的 ip.cn ,但是感觉不行了。 现在提供一些其他的可选择项: $ curl ipinfo.io { "ip": "60.205.205.243", "city": "", "region": "", "country": "CN", "loc": "34.7725,113.7270", "org": "AS37963 Hangzhou Alibaba Advertising Co.,Ltd." } $
魔王卷子
2019/05/31
7.3K0
SVN安装---本机安装---SVN 安装到eclipse中(6)
在eclipse里面用SVN: 首先是插件: 放到eclipse的dropins下面: 然后重启eclipse就好了 再就是到 windows preference
wust小吴
2019/07/05
8200
SVN安装---本机安装---SVN 安装到eclipse中(6)
绑定事件中 如可控制函数的执行次数
var flag = true; function onlyOne() { if(flag) { "这里是要执行的代码"; } flag = false//该方法是控制函数仅执行一次 因为flag是全局变量 onlyOne()函数执行一次后flag就变成false了 函数就执行不了了
大当家
2018/06/28
2.4K0
首发!DevOps@BOC — 器用之道,如琢如磨
我来自中国银行软件中心的一个开发部门,中国银行软件中心从 2013年开始试点敏捷软件开发以及相关CI、CD等实践,而我们内部真正的提 DevOps 比这个要更晚些。
DevOps时代
2018/10/08
1K0
首发!DevOps@BOC — 器用之道,如琢如磨
项目本机部署过程中的若个问题
项目本机部署对老手来说纯粹是一个操作的过程,没有任何的技术难点,因此不会去关注,也不常去操作,有时候换一台计算机,或者在别人的计算机上开发一个新项目,部署的时候又会冒出不少小问题。关于jdk安装和项目导入这些这里都不赘述,现仅就若干问题作下备忘。一、关于git部署一个项目首先要从版本库中获取一个项目,以git为例,首先要在代码托管平台上开通一个新的账户,并拥有获取该项目的权限,然后打开git bash,配置用户信息,信息与平台一致。 git config --global user.name "nick"g
java达人
2018/02/01
8490
点击加载更多

相似问题

反应-本机元素检测

14

粘性页脚反应本机如flipkart

13

(反应本机)如何检测电池的水平反应本机?

13

检测FlatList onBeginningReached反应本机

12

反应-本机检测屏幕缺口

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档