क्या मैं MVC3 में HTML.ActionLink में एक क्लास जोड़ सकता हूं


83

मेरे पास यह कोड है और मैं लिंक में एक वर्ग जोड़ना चाहूंगा। क्या MVC3 में ऐसा करना संभव है?

Html.ActionLink("Create New", "Create")

"सार्वजनिक वर्ग MyClass {...}" या "<a class='form-control' href='/MyController/MyAction'> नया </a> बनाएं के रूप में वर्ग?
लॉन्गचैक

जवाबों:


150

हाँ, आप बस css वर्ग का प्रतिनिधित्व करने वाले ऑब्जेक्ट के साथ एक और पैरामीटर जोड़ सकते हैं:

Html.ActionLink("Create New", "Create", CONTROLLERNAME, null, new { @class= "yourCSSclass"} )

इसका अनुवाद इस प्रकार किया जा सकता है:

Html.ActionLink(link text, action name, controller name, route values object, html attributes object)

संपादित करें:

कस्टम शैलियों को जोड़ने के लिए, इसका उपयोग करें:

Html.ActionLink(
"Create New",
"Create",
CONTROLLERNAME,
null,
new { @class= "yourCSSclass", @style= "width:100px; color: red;" }
)

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

1
@Sango: पहला पैरामीटर वास्तविक लिंक टेक्स्ट है जिसे दिखाया जाएगा। दूसरा पराक्रम क्रिया का नाम है। तीसरा एक नियंत्रक का नाम है। चौथा ऑब्जेक्ट है, जिसमें रूट वैल्यूज (यानी ऑब्जेक्ट जिसे आपको रूट / एक्शन को पास करना है) - आपको इस मामले में इसकी आवश्यकता नहीं है, इसलिए इसे केवल 'शून्य' बनाएं। और अंतिम एक htmlAttributes ऑब्जेक्ट है जिसे 'क्लास' जैसी संपत्तियां मिली हैं जो आपके लिंक के लिए एक सीएसएस क्लास के रूप में स्ट्रिंग / एस प्रदान करती हैं। आप पहले से ही उल्लेखित प्रलेखन पर अधिक देख सकते हैं । बस ध्यान दें, कि रिप्सोडी के जवाब से काम नहीं चलता क्योंकि ..
Damb

1
कोई "सर्वश्रेष्ठ" नहीं है। वे सभी अधिभार हैं जो एक अचोर टैग प्रदान करने के लिए समान अंतर्निहित कोड को इंगित करते हैं। कौन सा ओवरलोड चुनना है यह इस बात पर निर्भर करता है कि आपको URL में क्या चाहिए।
RPM1984

1
सभी को बहुत बहुत धन्यवाद। मेरे पास अब कोड काम कर रहा है और यह बहुत अच्छा लग रहा है।
सांगो

18
@Html.ActionLink("ClickMe",  // link text
                 "Index", // action name
                 "Home",  // controller 
                 new { id = 2131 }, // (optional) route values
                 new { @class = "someClass" }) // html attributes

@RPM - त्वरित प्रश्न। क्या मैं इस लिंक के लिए चौड़ाई की तरह कुछ निर्दिष्ट कर सकता हूं? मेरा बटन पाठ सामान्य से व्यापक है और मैं चौड़ाई को संशोधित करने में सक्षम होना चाहूंगा।
सांगो

@Sango: अपने लिंक में कस्टम शैलियों को जोड़ने का तरीका देखने के लिए मेरे उत्तर की जांच करें।
Damb

मैंने कोशिश की, लेकिन यह काम नहीं करता है। यह केवल पता मार्ग में 100px के मान के साथ चौड़ाई नामक एक पैरामीटर निर्दिष्ट करता है :-(
सांगो

@Sango: ऐसा लगता है कि मेरा जवाब आपके लिए असंगत है। तो कोई बात नहीं। शुरुआत के बाद से काम करने के जवाब के साथ मदद करने की कोशिश के लिए बहुत कुछ :)
शाम

btw का उपयोग @styleकरना बुरा अभ्यास है। IMO यह उपयोग करने के समान ही बुरा है <div style="color:red;">। CSS क्लास का उपयोग करें।
RPM1984

7
Html.ActionLink("Create New", "Create", null, htmlAttributes: new { @class = "className" })

5

आप एक्शनलिंक अधिभार का उपयोग कर सकते हैं जो उत्पन्न तत्व में एक वर्ग जोड़ने के लिए htmlAttributes पैरामीटर लेता है:

Html.ActionLink("Create New", "Create", new {}, new { @class = cssClass });

5

प्रलेखन के अनुसार , यह चाल करना चाहिए:

Html.ActionLink("LinkText", "Action", "Controller", new { }, new {@class="css class"})

संपादित करें: Dampe को देखने के लिए धन्यवाद, मैंने कोड नमूना अपडेट किया।


3
-1, यह काम नहीं करता है । आपको नियंत्रक नाम पैरामीटर और क्रिया नाम पैरामीटर का क्रमबद्ध स्विच मिला। आप मेरे उत्तर में सही क्रम देख सकते हैं।
Damb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.