5

मैं एएसपी.नेट एमवीसी 3 में वैश्वीकृत वेब-ऐप पर काम कर रहा हूं। परियोजना I18N संसाधन फ़ाइलें हैं और मैं सामान्य रूप से संसाधनों का उपयोग अंदर मेरे रेजर की तरह देखता है ...आप एक वाक्य के एकल शब्द रखने के लिए स्थानीय तारों को कैसे प्रारूपित करते हैं?

@I18N.MyResourceString 

मैं एक मुश्किल स्थिति है जिसमें मैं अभी तक एक सुरुचिपूर्ण समाधान करने के लिए यह पता लगाने के लिए सक्षम नहीं किया गया है। मुझे वाक्य दान करने में सक्षम होना चाहिए "दान करने के लिए यहां क्लिक करें।" जहां 'यहां' शब्द हमारे दान प्रणाली का एक लिंक होना चाहिए।

साइट में अधिकांश लिंक इसे उप आंतरिक मैं बस लिखना लिंक बनाने के लिए कर रहे हैं ...

@Html.ActionLink("Some link text", "MyAction", "MyController") 

यह दान लिंक बाहरी है। क्या मैं अब तक (जो काम नहीं कर रहा) है ...

@String.Format(I18N.ClickHereToDonate, "<a href=\"http://paypal.com\">" + I18N.Here + "</a>") 

जहां I18N.ClickHereToDonate संसाधन के पाठ "Click {0} to donate." है।

मैं स्क्रीन पर क्या देखते है ...

Click <a href="http://paypal.com">here</a> to donate. 

इसके अलावा, मैं भी 'एक' टैग के लिए एक 'शीर्षक' विशेषता जोड़ना चाहते हैं। यह भी भद्दा हो जाता है जब मुझे लगता है कि कोशिश ...

@String.Format(I18N.ClickHereToDonate, "<a href=\"http://paypal.com\" title=\"" + I18N.PayPal + "\">" + I18N.Here + "</a>") 

कुछ चीजें इस तरह के एक hackish तरीके से एक साथ श्रृंखलाबद्ध बिना एम्बेडेड टैग के साथ जटिल तार बनाने के लिए एक बेहतर तरीका हो गया है। न केवल यह काम नहीं करता है (इच्छित मार्कअप एन्कोड किया गया है) लेकिन यह HTML को मेरे रेजर टेम्पलेट में एक स्ट्रिंग अक्षर के अंदर बनाता है जो मुझे किसी भी भयानक आईडीई समर्थन/इंटरगेशन/रीफैक्टरिंग क्षमताओं को खो देता है।

मार्कअप को स्थानीय तारों में इंजेक्शन कैसे दिया जा सकता है?

अद्यतन
एडम Tuliper उसके जवाब में @Html.Raw सहायक विधि का उल्लेख किया तो मैं इसे अपने पहले ही बदसूरत मार्कअप को जोड़ा गया ...

@Html.Raw(String.Format(I18N.ClickHereToDonate, "<a href=\"http://paypal.com\" title=\"" + I18N.PayPal + "\">" + I18N.Here + "</a>")) 

यह कम से कम मुझे एक क्लिक करने योग्य लिंक मिला आउटपुट मार्कअप में।

दान करने के लिए here पर क्लिक करें।

यह अभी भी एक बहुत ही कम से कम सुरुचिपूर्ण समाधान है, इसलिए मैं अभी भी ऐसा करने के बेहतर तरीके ढूंढ रहा हूं।

उत्तर

2

शायद

<a href="http://paypal.com" title="@I18N.PayPal">@I18N.ClickHereToDonate</a> 

कुल मिलाकर प्रयास करने पर आपको स्ट्रिंग प्रारूप जरूरत नहीं है - तुम सिर्फ सामान्य html तत्वों के अंदर उस्तरा बातें इंजेक्षन कर सकते हैं।

संपादित करें: नीचे शामिल: बिना इस परिदृश्य के लिए समर्थन में बनाया (और वहाँ सहायकों में नहीं है)

@Html.Raw(String.Format(@I18N.ClickHereToDonate,String.Format("<a href='http://paypal.com' title='{0}'>{1}</a>", I18N.PayPal,I18N.Here))) 
+2

उसे स्ट्रिंग.फॉर्मेट की आवश्यकता है क्योंकि ऊपर की स्ट्रिंग प्लेसहोल्डर हैं। {0}, आदि –

+0

यही वह है जो मुझे अभी तक लेना था लेकिन यह वांछित परिणाम नहीं है। व्यवसाय केवल "यहां" शब्द को एक लिंक बनना चाहेगा, पूरी वाक्य नहीं। आपका उत्तर ठीक है जो मैं अपने मेनू आइटम लिंक के लिए पहले से ही करता हूं जो सभी एक शब्द या केवल कुछ शब्द हैं। –

+0

मैंने उपरोक्त को @ HTML.Raw का उपयोग करने के लिए संपादित किया - एडम ने इसे नीचे इस्तेमाल किया। दो स्ट्रिंग का उपयोग करना। फोरमेट्स को आपको वांछित परिणाम देना चाहिए, बिना संसाधन संसाधनों या किसी और चीज को बदलने की आवश्यकता के। –

1

आपके विकल्प सीमित हैं क्लीनर तरीका एक viewmodel में अपने यूआरएल के रूप में है और उस दृश्य मॉडल को देखने के लिए पास करें ताकि आपके पास न्यूनतम HTML हो। आपका ViewModel सार्वजनिक वर्ग WhateverIndexViewModel {; सेट;} सार्वजनिक स्ट्रिंग यूआरआई {मिल; सेट;} सार्वजनिक स्ट्रिंग शीर्षक {मिल; सेट; सार्वजनिक स्ट्रिंग कुंजी {मिल} } में

में जानकारी सेट अपने नियंत्रक, इसे अपने दृश्य में पास करें और

 

<a href="@Html.Raw(Links["YourKey"].URI)">@Links["YourKey"].Title"</a> 

मूलभूत विचार के रूप में उपयोग करें। नोट करें कि आप एचटीएमएल का उपयोग नहीं करना चाहते हैं। यहां पर कक्षा में आपका यूआरआई प्रकार एमवीसीस्ट्रिंग इस तरह से स्ट्रिंग नहीं करेगा @ लिंक ["YourKey"]। यूआरआई एचटीएमएल एन्कोडेड नहीं होगा।

+0

'Html.Raw' ने मुझे अपने प्रश्नों में वर्णित मार्कअप को एन्कोड नहीं किया है। लेकिन मुझे समझ में नहीं आता कि आप जो वर्णन कर रहे हैं वह मुझे उस लिंक को स्थानीयकृत स्ट्रिंग में एम्बेड करने में मदद करेगा ... –

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

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