2009-05-18 13 views
5

का उपयोग करके दृश्य में वीबीएनईटी एक्सटेंशन विधि सप्ताहांत में एक अजीब मुद्दा में भाग गया, जबकि मैं vb.net में एएसपीएनटी एमवीसी प्रोजेक्ट पर काम कर रहा था। मैंने एक पूर्णांक को उस महीने के साथ कनवर्ट करने के लिए एक विस्तार विधि बनाई है, जिसके साथ यह जुड़ा हुआ है। मैंने कंसोल एप्लिकेशन में एक्सटेंशन विधि का परीक्षण किया है, इसलिए मुझे पता है कि यह काम कर रहा है।एएसपी.नेट एमवीसी

मेरे एएसपीनेट एमवीसी प्रोजेक्ट में मेरे पास एक दृश्य है और एक्सटेंशन विधि को कॉल करना चाहते हैं लेकिन मुझे एक त्रुटि है कि एक्सटेंशन विधि पहचाना नहीं गया है। मैंने उस नामस्थान को आयात किया जिसमें यह निहित था और अभी भी त्रुटि को हिला नहीं सकता था। कोई विचार क्या चल रहा है? मेरे पास मेरी कोड की जरूरत नहीं है, लेकिन मुझे लगता है कि आज रात के बाद अगर यह मदद मिलेगी कर सकते हैं। धन्यवाद!

एक्सटेंशन विधि:

Imports System.Runtime.CompilerServices 

Module SiteExtensions 
    <Extension()> _ 
    Public Function ConvertToMonth(ByVal monthNumber As Integer) As String 
     Dim month As String = String.Empty 
     Select Case monthNumber 
      Case 1 
       month = "January" 
      Case 2 
       month = "February" 
      Case 3 
       month = "March" 
      Case 4 
       month = "April" 
      Case 5 
       month = "May" 
      Case 6 
       month = "June" 
      Case 7 
       month = "July" 
      Case 8 
       month = "August" 
      Case 9 
       month = "September" 
      Case 10 
       month = "October" 
      Case 11 
       month = "November" 
      Case 12 
       month = "December" 
     End Select 
     Return month 
    End Function 
End Module 

दृश्य:

<% For Each m As Integer In DirectCast(ViewData("Months"), IEnumerable)%> 
<a href="#"><%=m.ConvertToMonth()%><br /></a> 
<%Next%> 

त्रुटि है:

जॉन

उत्तर

11

सुनिश्चित करें कि आप सार्वजनिक रूप में अपने मॉड्यूल की घोषणा करें।

+0

मैं इस मुद्दे पर बहुत समय खो दिया है। मैंने वास्तव में इसे अपने आप सही किया और बाद में इसे पढ़ा। +1 –

2

कोड शायद मदद मिलेगी "ConvertToMonth पूर्णांक का सदस्य नहीं है", लेकिन यह अभी भी ऐसा नहीं लगता है कि आपके पास एक्सटेंशन विधि सही तरीके से आयात की गई है। आप इसे अपने एप्लिकेशन के समान नामस्थान देने का प्रयास करना चाह सकते हैं। या विस्तार के नामस्थान को System.Web.Mvc पर बदलें, क्योंकि हम जानते हैं कि नेमस्पेस काम करता है, और फिर वहां से अपना रास्ता वापस ले जाता है।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद! मैं अभी तक इसका परीक्षण करने में सक्षम नहीं हूं क्योंकि जैसे ही मैंने कल रात मेरी मशीन चालू की थी, मेरी मदरबोर्ड की मृत्यु हो गई थी। यह आज या कल हालांकि समाधान हो गया होगा और मैं अपने सुझाव एक शॉट, धन्यवाद करेंगे! – Jon

4
इस तरह कोड बदलने

:

Public Module SiteExtensions 

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