我想使用Razor在屏幕上打印变量。我在HttpContext中保存了一个名为CustomPrincipal的类,它正确保存。
我希望它像下面的例子一样在一行上,但遗憾的是不能正常工作:
@* This is not working... *@
@(CustomPrincipal)Context.Items["IUser"].Name
下面的示例正在运行,因此它将其正确保存到HttpContext。
@{ CustomPrincipal user = (CustomPrincipal)Context.Items["IUser"]; }
@user.Name
有谁知道为什么第一个例子不起作用,你能告诉我一个解决方案吗?
错误是:
编译器错误消息:CS0118:' CustomPrincipal'是一种'类型'但用作变量'
答案 0 :(得分:0)
所有学分都转到@DavidG和@CodeCaster,在评论中提到。
@(((CustomPrincipal)Context.Items["IUser"]).Name)
必要时括号,因为Name
类型上没有Object
属性,而Context.Items["IUser"]
是Object
。我们必须首先添加括号以将CustomPrincipal
转换为Name
,然后访问该类型的type DaysOfWeek =
| Monday
| Tuesday
| Wednesday
| Thursday
| Friday
| Saturday
| Sunday
with
static member Flag x =
let bit n = 1 <<< n
match x with
| Monday -> bit 0
| Tuesday -> bit 1
| Wednesday -> bit 2
| Thursday -> bit 3
| Friday -> bit 4
| Saturday -> bit 5
| Sunday -> bit 6
属性。
同一问题的另一个例子:https://stackoverflow.com/a/4151988/4585226