2016-09-20 11 views
5

उदाहरण उस्तरा में 6 स्ट्रिंग प्रक्षेप का उपयोग सी #:सही रास्ता

<button data-value="$'{@item.CustomerID}_{@item.CustomerType}'"></button> 

परिणाम:

$'{34645}_{71}' 

उम्मीद:

34645_71 

अद्यतन: सी # 6 को सक्षम करना था और काम करने के लिए @ smdrager की आखिरी दो तकनीकों के लिए उचित पैकेज स्थापित करना था। वीएस2015 में >> प्रोजेक्ट मेनू पर क्लिक करें >> सक्षम करें क्लिक करें 6 #

+0

क्या आप स्ट्रिंग इंटरपोलेशन का उपयोग करके मृत-सेट हैं या बस उस आउटपुट को प्राप्त करने का सबसे अच्छा तरीका ढूंढ रहे हैं? –

+0

@DStanley, यदि संभव हो तो मृत सेट। – usefulBee

+1

रेजर दृश्यों में सी # 6 को सक्षम करने के लिए http://stackoverflow.com/questions/30832659/string-interpolation-in-a-razor-view देखें –

उत्तर

8

आपके द्वारा प्रदान किए गए उदाहरण में, स्ट्रिंग इंटरपोलेशन आवश्यक नहीं है।

<button data-value="@(item.CustomerID)[email protected]"></button> 

कौन सा <button data-value="34567_123"></button>

का उत्पादन करेगा प्रक्षेप के साथ equivallent होगा:: मानक उस्तरा वाक्य रचना का उपयोग करके आप परिणाम आप के साथ चाहते हैं प्राप्त कर सकते हैं

@Html.Raw($"<button data-value='{item.CustomerID}_{item.CustomerType}'></button>") 

लेकिन आप HTML एन्कोडेड से वंचित स्क्रिप्ट इंजेक्शन को रोकने के लिए (हालांकि यह उन डेटा प्रकारों के साथ असंभव प्रतीत होता है जिनके साथ आप काम कर रहे हैं)।

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

आप पूरी तरह से निराला प्राप्त करना चाहते हैं, तो आप दोनों का मिश्रण कर सकते।

<button data-value="@($"{item.CustomerID}_{item.CustomerType}")"></button> 

लेकिन यह अधिक वर्बोज़ और पढ़ने में मुश्किल है।

+0

बस पहली तकनीक की कोशिश की, @ item.CustomerID_ काम नहीं करता है। अंडरस्कोर की वजह से ग्राहक आईडी पहचाना नहीं जाएगा। – usefulBee

+0

@DStanley, सही और सत्यापित..thx! मुझे लगता है कि इसे जवाब में संपादित करने की जरूरत है। – usefulBee

+2

इसके बारे में क्षमा करें। मैंने जवाब को सही किया। कभी-कभी आपको रेजर पार्सर के लिए भ्रम को दूर करने के लिए ब्रांड्स का उपयोग करने की आवश्यकता होती है। – smdrager

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