2012-03-17 12 views
12
var boxIdValue = 233; 
var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=233}, null)'; 

जब मैं boxId हार्डकोड करता हूं तो यह काम करता है। लेकिन जब मैं लिखता हूं:रेज़र में जावास्क्रिप्ट चर एक्शनलिंक

var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=boxIdValue}, null)'; 

ऐसा नहीं है। क्या इस तरह जावास्क्रिप्ट var और razor मिश्रण करना संभव है?

उत्तर

21

this related Stack Overflow प्रश्न पर एक नज़र डालें।

कारण यह चुनौती है कि रेजर विधि समय पर प्रस्तुत करने पर वेब सर्वर पर निष्पादित होती है जबकि जावास्क्रिप्ट रनटाइम पर क्लाइंट ब्राउज़र पर निष्पादित करता है।

मैं अगर तुम न एक दूसरे पैरामीटर की तरह

var boxIdValue = 233; 
var link = '@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=-1}, null)' 
link = link.replace('-1', boxIdValue); 
var result = title + '<br />' + link; 
+0

कुछ कर रही यह केवल काम करता है के द्वारा इस का समाधान होगा। कुछ नया {boxId = -1, पृष्ठ = 1} असफल हो जाएगा। विभाजक और & के रूप में एन्कोडेड HTML होगा और पृष्ठ पैरामीटर केशन पर उपलब्ध नहीं होगा। इसे काम करने के लिए आपको @ Html.Raw (HTML.ActionLink ... का उपयोग करने की आवश्यकता है ... –

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