MVC3 Как отключить/включить ActionLink У меня есть условие, и я хочу отключить или включить мою кнопку actionLink. Как мне это сделать? @Html.ActionLink("Delete", "Delete", new { id = @Model.Id}) Спасибо, Ответ 1 Если вы знаете на стороне сервера, что ссылка недоступна, просто отрисуйте сообщение о том, что действие недоступно: @if(condition) { @Html.ActionLink("Delete", "Delete", new { id = @Model.Id}) } else { <text>Action is not available</text> } В противном случае вы можете отключить только ссылку с помощью CSS: Отключить ссылку, используя css JS: Как включить или отключить привязку с помощью jQuery? Чтобы он работал в кросс-браузере: Должен ли тег HTML-привязки отличиться атрибутом отключен? Ответ 2 Чтобы отключить тег "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 .linkdisabled{ cursor:text; } JQuery $function(){ $(".linkdisabled").click(function(){ return false; } } Ответ 3 Возможно, вы можете создать свой собственный пользовательский интерфейс типа MvcHtmlString 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 в Google.
Ответ 1 Если вы знаете на стороне сервера, что ссылка недоступна, просто отрисуйте сообщение о том, что действие недоступно: @if(condition) { @Html.ActionLink("Delete", "Delete", new { id = @Model.Id}) } else { <text>Action is not available</text> } В противном случае вы можете отключить только ссылку с помощью CSS: Отключить ссылку, используя css JS: Как включить или отключить привязку с помощью jQuery? Чтобы он работал в кросс-браузере: Должен ли тег HTML-привязки отличиться атрибутом отключен?
Ответ 2 Чтобы отключить тег "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 .linkdisabled{ cursor:text; } JQuery $function(){ $(".linkdisabled").click(function(){ return false; } }
Ответ 3 Возможно, вы можете создать свой собственный пользовательский интерфейс типа MvcHtmlString 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 в Google.