使用Razor(C#)在屏幕上打印变量

时间:2016-09-21 12:46:07

标签: c# asp.net-mvc razor umbraco umbraco7

我想使用Razor在屏幕上打印变量。我在HttpContext中保存了一个名为CustomPrincipal的类,它正确保存。

我希望它像下面的例子一样在一行上,但遗憾的是不能正常工作:

@* This is not working... *@
@(CustomPrincipal)Context.Items["IUser"].Name

下面的示例正在运行,因此它将其正确保存到HttpContext。

@{ CustomPrincipal user = (CustomPrincipal)Context.Items["IUser"]; }
@user.Name

有谁知道为什么第一个例子不起作用,你能告诉我一个解决方案吗?

错误是:

  

编译器错误消息:CS0118:' CustomPrincipal'是一种'类型'但用作变量'

1 个答案:

答案 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