如果禁用了Action链接,那么如何使其无法通过MVC3中的url访问

时间:2011-08-17 16:33:27

标签: asp.net-mvc-3 html.actionlink

在我看来,我禁用或启用如下链接。即使在视图中禁用了“保险或所有者名称更改”链接,我也可以通过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>
                    }

1 个答案:

答案 0 :(得分:0)

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

那就是说,你可以在“NameChangeRequestController”中执行此操作 - &gt; “索引”行动:

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

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