0

在我看来,我禁用或启用如下链接。即使视图中禁用了“被保险人或所有者名称更改”链接,我也可以通过“http://localhost:0000/NameChangeRequest?contract=111111”之类的 url 访问它,这不应该发生。谁可以帮我这个事?

           @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>
                    }
4

1 回答 1

0

你永远不应该使用视图来处理访问控制或任何性质的业务逻辑。视图应该只有表示层逻辑和标记。

也就是说,您可以在 "NameChangeRequestController" -> "Index" 操作中执行此操作:

public ActionResult Index()
{
    if(!Model.CanCreateNameChangeRequest)
        RedirectToAction("Index","Home");
}

此外,这看起来很像基于角色的权限,在这种情况下,您应该使用“[Authorize]”属性和“IsInRole”。

于 2011-08-17T16:53:27.873 回答