在 Blazor 中处理引号

jha*_*ond 1 c# blazor

我的 Blazor Web Assembly 应用程序中有这样一行:

<Calendar User="@context.User.Claims.Where(user => user.Type == "sid")"></Calendar>
Run Code Online (Sandbox Code Playgroud)

但是 VS 不喜欢“sid”用引号引起来的事实,因为它弄乱了 User="" 属性。我该如何处理?

另外,附带问题,这是在 blazor web assembly 中获取用户 ID 的正确方法吗?这似乎是最简单的方法,但我是身份验证的新手,所以我不知道这样做是否违反了最佳实践。

谢谢!

Rya*_*son 5

在 @ 和 C# 代码之间使用括号:

<Calendar User="@(context.User.Claims.Where(user => user.Type == "sid"))"></Calendar>
Run Code Online (Sandbox Code Playgroud)

至于您的第二个问题,假设您使用 Asp.Net 作为后端代码,您可以从HttpContext.Current.User用户请求服务器端获取 User 对象,您可以在此处阅读更多相关信息(https://docs.microsoft. com/en-us/dotnet/api/system.security.claims.claimsprincipal?view=netcore-3.1 )


Dou*_*dle 5

您可以使用括号@( )使其成为代码块

<Calendar User="@(context.User.Claims.Where(user => user.Type == "sid"))" />
Run Code Online (Sandbox Code Playgroud)