2012-03-23 15 views

उत्तर

18

आप सर्वर साइड कि लिंक तो बस संदेश प्रस्तुत करना उपलब्ध नहीं है पर पता है कि कार्रवाई उपलब्ध नहीं है:

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

नहीं तो आप केवल निष्क्रिय कर सकते हैं साथ

यह पार ब्राउज़र काम करने के लिए: Should the HTML Anchor Tag Honor the Disabled Attribute?

13

अक्षम करने के लिए एक "एक" टैग जिन्हें आप कर सकते हैं:

@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" }) 

सीएसएस:

.linkdisabled{ 
    cursor:text; 
} 

JQuery:

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

हाय, अच्छा समाधान .. लेकिन टेक्स्ट को गैर-क्लिक करने में सक्षम बनाने का कोई तरीका है। अब यह एक लिंक के रूप में दिखाई देता है लेकिन यह कहीं भी नहीं जा रहा है। तो क्या इसकी उपस्थिति बदलने का कोई तरीका है। धन्यवाद – Scorpion

+0

आप एक शैली विशेषता जोड़ सकते हैं या ऐसा करने के लिए एक सीएसएस कक्षा का उपयोग कर सकते हैं: –

+0

धन्यवाद! अच्छा समाधान! –

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) 

लेकिन मैंने कभी कोशिश नहीं की है। Google पर MvcHtmlString के बारे में कुछ खोजने का प्रयास करें।

संबंधित मुद्दे