MVC3如何禁用/启用ActionLink

Ben*_*enk 14 asp.net-mvc asp.net-mvc-3

我有条件,我想禁用或启用我的actionLink按钮.

我该怎么办?

@Html.ActionLink("Delete", "Delete", new { id = @Model.Id})

谢谢,

nem*_*esv 25

如果您在服务器端知道该链接不可用,则只显示该操作不可用的消息:

@if(condition)
{
   @Html.ActionLink("Delete", "Delete", new { id = @Model.Id})
}
else
{
   <text>Action is not available</text>
}
Run Code Online (Sandbox Code Playgroud)

否则,您只能禁用链接

使其跨浏览器工作:HTML Anchor Tag是否应该授予禁用属性?


Joh*_*ado 17

要禁用"a"标记,您可以执行以下操作:

@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { onclick = "javascript:return false;" })
Run Code Online (Sandbox Code Playgroud)

或者你可以使用JQuery:

@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { class = "linkdisabled" })
Run Code Online (Sandbox Code Playgroud)

CSS:

.linkdisabled{
   cursor:text;
}
Run Code Online (Sandbox Code Playgroud)

JQuery的:

$function(){
    $(".linkdisabled").click(function(){
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)


Jas*_*ler 6

聚会有点晚了,但万一其他人偶然发现了这个......如果你的项目是引导的,你可以这样做:

@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { @class = "btn btn-default disabled" })
Run Code Online (Sandbox Code Playgroud)

或者

@{
    bool btnDisabled = // Logic here;
}

@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { @class = "btn btn-default " + @btnDisabled ? "disabled" : "" })
Run Code Online (Sandbox Code Playgroud)