2011-07-29 8 views
5

के रूप में इस्तेमाल सहायक। उदाहरण के लिए:उस्तरा कथात्मक मान लिया जाये कि मैं इस तरह के रूप में एक सहायक है जावास्क्रिप्ट स्ट्रिंग

if ($('#YearTextBox').val() == "") 
{ 
     $('#ErrorDiv').append('@AddErrorSpan("Year field is required.")'); 
} 

यह विफल रहता है और क्योंकि सहायक अंत में एक नई पंक्ति रिटर्न एक जावास्क्रिप्ट सिंटैक्स त्रुटि का कारण बनता है। यह पीछे की ओर '); को अगली पंक्ति में सिंटैक्स त्रुटि के कारण धकेलने का कारण बनता है। क्या आसानी से इसका समाधान करने के लिए मैं कुछ कर सकता हूं? वर्तमान में आसान समाधान इस तरह सहायक बनाने के लिए है।

@helper AddErrorSpan(string error) 
{<span class="error">@error</span>} 

कोई ब्रेक को बंद करने से पहले } नई लाइन सहायक से वापस नहीं है और किसी जावास्क्रिप्ट सिंटेक्स त्रुटि है के बाद से। यह देखने के लिए परेशान और बदसूरत है। क्या मेरे जावास्क्रिप्ट विधि में कॉल किए जाने पर सहायक को नई लाइन लौटने से रोकने का कोई तरीका है?

उत्तर

4

सहायक को कॉल करते समय आपको HttpUtility.JavaScriptStringEncode पर कॉल करके स्ट्रिंग को जावास्क्रिप्ट-एन्कोड करने की आवश्यकता है।

यह \r\n के रूप में नई लाइन से बच जाएगा, जो बदले में एचटीएमएल पार्सर द्वारा निगल लिया जाएगा।

@Ajax.JavaScriptStringEncode(value) 

या एक सहायक की घोषणा इसे और अधिक संक्षिप्त बनाने के लिए:

$('#ErrorDiv').append('@HttpUtility.JavaScriptStringEncode(AddErrorSpan("Year field is required.").ToString())'); 
+0

शब्दाडंबरपूर्ण :(क्यों यह इतना वर्बोज़ होना जरूरी है – Raynos

+1

। @ रेनोस: यदि आप चाहते हैं, तो आप इस विधि को कॉल करने वाले छोटे नाम के साथ एक सहायक बना सकते हैं। – SLaks

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

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