2012-03-23 29 views

Trả lời

18

Nếu bạn biết ở phía máy chủ liên kết là không có sẵn sau đó chỉ cần làm một thông báo rằng hành động đó là không có sẵn:

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

Nếu không, bạn chỉ có thể vô hiệu hóa liên kết với

Để làm cho nó làm việc qua trình duyệt: Should the HTML Anchor Tag Honor the Disabled Attribute?

13

Để vô hiệu hóa một "a" tag bạn có thể làm:

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

Hoặc bạn có thể sử dụng JQuery:

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

CSS:

.linkdisabled{ 
    cursor:text; 
} 

JQuery:

$function(){ 
    $(".linkdisabled").click(function(){ 
     return false; 
    } 
} 
+0

Xin chào, giải pháp tốt đẹp .. nhưng có cách nào để làm cho văn bản không nhấp có thể. Bây giờ nó xuất hiện như một liên kết nhưng nó không đi đâu cả. Vì vậy, có cách nào để thay đổi diện mạo của nó. Cảm ơn – Scorpion

+0

Bạn có thể thêm thuộc tính kiểu hoặc sử dụng lớp css để làm điều đó: –

+0

Cảm ơn bạn! Giải pháp tốt! –

3

Có lẽ bạn có thể tạo giao diện người dùng riêng của bạn thuộc loại 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()); 
} 

và sử dụng nó trong Xem bạn

@Html.MyActionLink(// some parameters here) 

Nhưng tôi chưa bao giờ thử. Hãy thử tìm nội dung nào đó về số MvcHtmlString trên Google.

Các vấn đề liên quan