在我看来,我禁用或启用如下链接。即使在视图中禁用了“保险或所有者名称更改”链接,我也可以通过URL“http:// localhost:0000 / NameChangeRequest?contract = 111111”访问它,这不应该发生。谁可以帮我这个事?
@if (Model.CanCreateNameChangeRequest)
{
@Html.ActionLink("Insured or Owner Name Change", "Index", "NameChangeRequest", new { @contract = Model.ContractNumber }, new { @class = "requestLink" });
}
else
{
<span class="requestLinkDisabled">Insured or Owner Name Change</span>
}
答案 0 :(得分:0)
您永远不应该使用Views来处理访问控制或任何业务逻辑。视图应该只有表示层逻辑和标记。
那就是说,你可以在“NameChangeRequestController”中执行此操作 - &gt; “索引”行动:
public ActionResult Index()
{
if(!Model.CanCreateNameChangeRequest)
RedirectToAction("Index","Home");
}
此外,这看起来很像基于角色的权限,在这种情况下,您应该使用“[Authorize]”属性和“IsInRole”。