Ste*_*ven 2 asp.net asp.net-mvc razor
我有一个奇怪的问题,ActionLink不会显示.我在我看来有这个代码:
@if (User.IsInRole("Allow Create")) {
Html.ActionLink("Add a new item", "Create");
}
Run Code Online (Sandbox Code Playgroud)
我想也许我的角色和权限没有正确设置,但我通过了调试器,确实if语句成功了.它到达代码来创建动作链接,并且没有错误.
但是当页面加载时,没有链接.它不是隐藏的或任何东西,它根本不在源头.
谁知道我在做错了什么?
你需要一个额外的 @
@if (User.IsInRole("Allow Create")) {
@Html.ActionLink("Add a new item", "Create");
}
Run Code Online (Sandbox Code Playgroud)
至于解释:@if (User.IsInRole("Allow Create")) {将你置于一个代码块中,并且剃刀表示你正在调用Html.ActionLink(..),就像你在调用一个函数而不打扰返回的结果一样.由于您实际上想要将Html.ActionLink的结果输出为html,因此您需要混合需要@前缀的代码和文本.
为了说明,以下内容与上面的代码具有相同的结果:
@if (User.IsInRole("Allow Create")) {
var url = Html.ActionLink("Add a new item", "Create");
@url;
}
Run Code Online (Sandbox Code Playgroud)
这是一个很好的快速参考
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |