2011-10-20 11 views
7

मेरे App_code में, Formatter.cshtml में FormatTelephone(string number) नामक एक सहायक फ़ंक्शन है। मैंने @Formatter.FormatTelephone(number) द्वारा आंशिक दृश्य में इसे एक्सेस करने का प्रयास किया। जब मैं परीक्षण करते हैं, यह कहता हैऐप_Cोड में रेजर @helper

कंपाइलर त्रुटि संदेश: CS0103: नाम 'फ़ॉर्मेटर' वर्तमान संदर्भ

यह संभावित कारण क्या है में मौजूद नहीं है? धन्यवाद! ~/App_Code/Formatter.cshtml में मेरे लिए

उत्तर

7

मैं जब एक और सर्वर पर साइट की तैनाती इस सटीक समस्या हुई थी। सुनिश्चित करें कि App_Code/Formatter.cshtml फ़ाइल वास्तव में सर्वर पर कॉपी की गई है! मेरी गलती थी कि फ़ाइल में एक बिल्ड एक्शन है जिसे 'पर सेट किया गया था'। फ़ाइल पर राइट क्लिक करें और गुण चुनें, और फिर बिल्ड एक्शन को 'सामग्री' पर सेट करें।

नोट:

आप asp.net MVC के 3/4 स्थापित करें कि निम्न DLLs अपने बिन फ़ोल्डर में कर रहे हैं नहीं है, तो।

  • System.Web.Mvc
  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages
  • System.Web.WebPages.Razor

स्कॉट हंसेलमैन के पास एक ब्लॉग पोस्ट है जो आपकी समस्या का कारण बन सकता है। BIN Deploying ASP.NET MVC 3 with Razor to a Windows Server without MVC installed

+0

मैं एक ही स्थिति में भाग गया। हेल्पर्स तैनात सर्वर में काम नहीं करते थे और समस्या यह है कि डिफ़ॉल्ट रूप से सहायक फाइलों में 'एक्शन' पर सेट एक्शन सेट होता है। टिप के लिए धन्यवाद! – vcRobe

1

निम्नलिखित काम करता है:

@helper FormatTelephone(string number) 
{ 
    <div>Formatted @number</div> 
} 

और फिर कुछ ध्यान में रखते हुए:

@Formatter.FormatTelephone("123") 
+0

हां। मैं इस सहायक समारोह को कई विचारों में साझा करना चाहता हूं, इसलिए मैंने इसे 'App_code \ Formatter.cshtml' में रखा है। मैं इसे 'दृश्य \ साझा \ _InfoView.cshtml' में एक्सेस करने का प्रयास कर रहा हूं। हालांकि, यह काम नहीं करता है और कहता है 'फॉर्मेटर' मौजूद नहीं है। यह अजीब है, क्योंकि जब मैं इसे टाइप करता हूं, इंटेलिजेंस ने 'फॉर्मेटर' को पहचाना। – uni

+0

@uni, आप किस पैरामीटर को पार कर रहे हैं? यह एक स्ट्रिंग होना चाहिए। मेरे उदाहरण में किए गए मान को हार्डकोड करने का प्रयास करें। –

+0

हाँ, मुझे यकीन है कि यह एक स्ट्रिंग है। – uni