gpt4 book ai didi

asp.net - if 语句中的 ActionLink 不显示

转载 作者:行者123 更新时间:2023-12-01 22:27:48 31 4
gpt4 key购买 nike

我遇到一个奇怪的问题,即 ActionLink 无法显示。我认为这段代码是这样的:

@if (User.IsInRole("Allow Create")) {
Html.ActionLink("Add a new item", "Create");
}

我想也许我的角色和权限设置不正确,但我通过了调试器,果然 if 语句成功了。它到达了创建操作链接的代码,并且没有错误。

但是当页面加载时,没有链接。它没有隐藏或任何东西,它根本不在源代码中。

有人知道我在这里做错了什么吗?

最佳答案

你需要一个额外的@

@if (User.IsInRole("Allow Create")) {
@Html.ActionLink("Add a new item", "Create");
}

至于解释:@if (User.IsInRole("Allow Create")) { 将您置于代码块中,并且 razor 认为您只是在调用 Html。 ActionLink(..) 就好像您正在调用一个函数,而不关心返回的结果。由于您实际上希望将 Html.ActionLink 的结果输出为 html,因此您将需要 @ 前缀的代码和文本混合在一起。

只是为了说明,以下代码将具有与上面代码相​​同的结果:

@if (User.IsInRole("Allow Create")) {
var url = Html.ActionLink("Add a new item", "Create");
@url;
}

这是一个不错的 Quick Reference

关于asp.net - if 语句中的 ActionLink 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367614/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com