繁体   English   中英

ASP.NET Core 2.1在视图中使用HttpContext

ASP.NET Core 2.1 Use HttpContext in view

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有这个httpcontext声明,我想在我的视图中使用它来显示当前用户的用户名。 到目前为止,这是我的操作方式:

<p>@Context.User.Claims.SingleOrDefault(u => u.Type == "UserName")</p>

但是,结果是这样的:

用户名:user@email.com

我想念什么吗? 我试图这样做:

@Context.User.Claims.SingleOrDefault(u => u.Type == "UserName").Select(c => c.Value).SingleOrDefault()

但这不允许我在SingleOrDefault之后使用Select。

2 个回复

SingleOrDefault()返回与条件匹配的单个元素,而不是可以稍后Select另一个IQueryableIEnumerable集合。

返回序列的单个特定元素,如果找不到该元素,则返回默认值。

在使用Select()之前,应使用Where()返回集合:

@Context.User.Claims.Where(u => u.Type == "UserName").Select(c => c.Value).SingleOrDefault()

对于C#6.0及更高版本,请使用null条件运算符获取其值:

@Context.User.Claims.SingleOrDefault(u => u.Type == "UserName")?.Value

但是,结果是这样的:

因为.SingleOrDefault返回声明项,所以视图使用其.ToString方法呈现该项。

但这不允许我在SingleOrDefault之后使用Select。

.SingleOrDefault返回集合中的项目,而.Select需要集合。 您应该直接访问此项目的.Value属性。

@Context.User.Claims.SingleOrDefault(u => u.Type == "UserName")?.Value
4 剃刀视图在ASP.NET中使用@

我知道我们使用@符号在C#代码和html代码之间切换,但是对于下面的代码: 为什么我们仍可以在@之前将@放置为@i? 因为这里没有html元素,所以没有切换,而我是c#代码,如果我们仅使用“ i”而不是“ @i”,我们应该得到相同的输出吗? 另一个问题是: 为什么我们不需 ...

5 在ASP.NET中使用部分视图5

我有一个HTML文件,我想用局部视图加载; 但是,当我输入 部分功能永远不会出现。 在ASP.NET 5中是否删除了部分内容,还是将其重新定位到其他包中? 目前我正在使用以下软件包: Team.html ...

8 在单个视图中使用多个模型ASP.NET,MVC [重复]

这个问题已经在这里有了答案: 视图中的多个模型 12个答案 我正在淘汰像OLX这样的二手商品,我有两种型号 1:产品模型 2:Customer_model 所以我想在单个视图中使用产品描述和客户信息。 楷模: 我的控制器: ...

9 在HTML视图中的Asp.NET控件属性中使用变量

我想知道是否有任何方法可以做到这一点: 并在后面的代码中: 我知道有些人可能会问我为什么需要它,但是我发现这种方法比在后面的代码中说的更干净: 我也可以在源代码视图中这样说: 但是同样,第一个对我来说会更直观。 有任何想法吗? ...

10 如何在ASP.Net视图中使用Html.RadioButtonFor?

我正在使用带有C#语言的ASP.Net MVC。 我想编辑一个用户。 用户表具有一个称为“ IsActive”的布尔字段。 在模型中,我正在使用ADO.Net实体数据模型。 在视图中,Visual Studio for IsActive生成的脚本正在使用TextBox。 在 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM