2013-09-05 20 views
16

मेरे पास दो @Html.ActionLink's है जो मैं बटन की तरह दिखाना चाहता हूं। मैं CSS के साथ ऐसा करने में सक्षम हूं लेकिन केवल CSS लागू करने के लिए मैं एक्शनलिंक के #ID का उपयोग करता हूं। मैं एक्शन लिंक पर एक क्लास असाइन करना चाहता हूं लेकिन जब मैं नीचे दिए गए कोड का उपयोग करता हूं तो मुझे एक त्रुटि मिलती है कि मेरे पास गायब है "}"।मैं एक @ html.ActionLink में कक्षा कैसे जोड़ूं?

@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, 
       new { id = "PoPrint"} , new { class = "PoClass"}) 

यहाँ शैली मैं लागू करने हूं:

<style> 
#PoPrint 
{ 
border: 4px outset; 
padding: 2px; 
text-decoration: none; 
background-color:lightskyblue; 
} 
</style> 

यह काम करता है और मैं मैं सिर्फ tthe शैली के लिए अन्य #ID जोड़ सकता है लेकिन कक्षा के लिए शैली लागू करना चाहते हैं लगता है।

+0

संभावित डुप्लिकेट http://stackoverflow.com/questions/5608622/asp-net-mvc-add-css-class-to-actionlink और http://stackoverflow.com/questions/1444495/how-do-i-apply-a-css-class-to-html-actionlink-in-asp-net-mvc –

+0

@FaceOfJock, मैंने उन दोनों पोस्टों को देखा और आवेदन करने का प्रयास किया समाधान लेकिन सफल नहीं था। –

+0

यदि सभी प्रस्तावित समाधान काम नहीं करते हैं, तो आप जावास्क्रिप्ट को समाधान के रूप में उपयोग कर सकते हैं, आप आईडी द्वारा अपना तत्व चुनते हैं और फिर अपनी कक्षा –

उत्तर

54

आपको @ वर्ण का उपयोग करना होगा, क्योंकि कक्षा सी # में एक कीवर्ड है। यहाँ MSDN प्रलेखीकरण के लिए एक लिंक है: http://msdn.microsoft.com/en-us/library/dd492124(v=vs.108).aspx

@Html.ActionLink("Link Text", "ActionName", 
     new { controller = "MyController", id = 1 }, 
     new { @class = "my-class" }) 
+0

मेरे पास मेरे तर्क गलत थे, वह मुद्दा था। धन्यवाद। –

+0

क्या होगा अगर मुझे कक्षा और आईडी चाहिए? क्योंकि आपके उत्तर में आईडी शायद एक पैरामीटर सही है? – Djeroen

+0

ठीक है मुझे पहले से ही जवाब मिला: 'नया {@class = "my-class", id = 4} ' – Djeroen

6

समस्या यह है कि कक्षा सी # में एक आरक्षित शब्द है। तुम इतनी तरह @ प्रतीक के साथ भागने से निर्दिष्ट कर सकते हैं कि आप अपनी विशेषता नाम के रूप में नाम 'क्लास' का उपयोग करना चाहते:

@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, new { id = "PoPrint", @class = "PoClass"}) 
+1

जोड़ते हैं क्या यह HTML.ActionLink पर बहुत अधिक तर्क नहीं है? पिछले ऑब्जेक्ट में 'आईडी' के साथ 'आईडी' के साथ संयुक्त नहीं होना चाहिए? – jmoerdyk

+0

@ क्रिस.हाउस, मैंने उस समाधान का प्रयास किया था (ऊपर वर्णित संभावित डुप्लिकेट पदों से) लेकिन यह त्रुटि मिली: CS1928: 'System.Web.Mvc.HtmlHelper ' में 'एक्शनलिंक' और सर्वोत्तम एक्सटेंशन की परिभाषा नहीं है विधि अधिभार 'System.Web.Mvc.Html.LinkExtensions.ActionLink (System.Web.Mvc.HtmlHelper, स्ट्रिंग, स्ट्रिंग, स्ट्रिंग, ऑब्जेक्ट, ऑब्जेक्ट)' में कुछ अमान्य तर्क हैं –

+0

@AlanFisher - '@ Html.ActionLink (" प्रिंट पीओ "," PoReport ", नया {id = 51970}, नया {id =" PoPrint ", @class =" PoClass "})' – jmoerdyk

0

इस new { @class = "PoClass"} आप वर्ग जैसे कीवर्ड की @ ज़रूरत है

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