Asp.net mvc MVC3如何禁用/启用ActionLink
我有if条件,我想禁用或启用我的actionLink按钮 我该怎么做Asp.net mvc MVC3如何禁用/启用ActionLink,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有if条件,我想禁用或启用我的actionLink按钮 我该怎么做 @Html.ActionLink(“删除”,“删除”,新建{id=@Model.id}) 谢谢,要禁用“a”标记,您可以执行以下操作: @Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { onclick = "javascript:return false;" }) 也可以使用JQuery: @Html.ActionLink("Delete",
@Html.ActionLink(“删除”,“删除”,新建{id=@Model.id})
谢谢,要禁用“a”标记,您可以执行以下操作:
@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { onclick = "javascript:return false;" })
也可以使用JQuery:
@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { class = "linkdisabled" })
CSS:
JQuery:
$function(){
$(".linkdisabled").click(function(){
return false;
}
}
如果您知道服务器端的链接不可用,则只需呈现一条消息,说明该操作不可用:
@if(condition)
{
@Html.ActionLink("Delete", "Delete", new { id = @Model.Id})
}
else
{
<text>Action is not available</text>
}
@if(条件)
{
@ActionLink(“删除”,“删除”,新的{id=@Model.id})
}
其他的
{
操作不可用
}
否则,只能禁用具有的链接
- CSS:
- JS:
要使其跨浏览器工作:也许您可以创建自己的MvcHtmlString类型的UI
public static MvcHtmlString MyActionLink(this HtmlHelper helper, bool isClickable, string altText, RouteValueDictionary routeValues, object htmlAttributes = null)
{
// some logic with isClickale parameter here
if(isClickable == false)
{}
return new MvcHtmlString(helper.ToHtmlString());
}
在你的视野中使用它
@Html.MyActionLink( // some parameters here )
但我从未尝试过。试着在谷歌上找到一些关于MvcHtmlString的信息。有人可能会觉得这很有用,我曾经通过将@Html.ActionLink转换为输入解决了一个类似的问题
然后使用javascript将其作为链接使用:
<script>
$(document).ready(function () {
$('#submit').click(function () {
if(condition){
//sth (not working as a link)
}
else
{
window.location.href = "/home/thanks"; //working as a link
}
})
</script>
$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
如果(条件){
//某物(不作为链接)
}
其他的
{
window.location.href=“/home/thank”//作为链接使用
}
})
派对有点晚了,但万一有人无意中发现。。。
如果项目已启动,则可以执行以下操作:
@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { @class = "btn btn-default disabled" })
或
您好,很好的解决方案。但是有没有办法使文本不可点击。现在它显示为链接,但它不会出现在任何地方。有没有办法改变它的外观。谢谢您可以添加样式属性或使用css类来做到这一点:谢谢!很好的解决方案!将true/false添加到@class对我不起作用。我通过添加字符串对它进行了测试“禁用”或添加空字符串时,按钮应该是启用的,它工作正常“补充说这将是我首选的解决方案,我会投票给这个答案。@Mariusz我编辑了我答案的第二部分,只是在我写的时候没有完成这个想法。这就是你想要的吗?没错。谢谢并投票给你的答案:-)
@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { @class = "btn btn-default disabled" })
@{
bool btnDisabled = // Logic here;
}
@Html.ActionLink("Delete", "Delete", new { id = @Model.Id}, new { @class = "btn btn-default " + @btnDisabled ? "disabled" : "" })