2013-01-29 8 views
5

मैं रेजर सिंटैक्स के साथ एएसपी.नेट एमवीसी 4 ढांचे का उपयोग कर एक एप्लीकेशन विकसित करना शुरू कर रहा हूं। मैं जानना चाहता हूं कि (फ़ोल्डर स्थान) मुझे अपना एचटीएमएल हेल्पर क्लास बनाना चाहिए। सर्वश्रेष्ठ प्रणालियां।एएसपी.नेट एमवीसी 4 कस्टम एचटीएमएल हेल्पर्स फ़ोल्डर स्थान

उदाहरण के लिए:

  • VisualStudioSolution
    • controlles
    • एचटीएमएल
      • HtmlHelperClass.vb
    • मॉडल
    • दृश्य

उत्तर

6

this का उपयोग करें। रेजर में "@helper" सुविधा का उपयोग करने के लिए आपको अपने ऐप के App_Code फ़ोल्डर में CSHTML फ़ाइल को रखने की आवश्यकता है। एएसपी.नेट एमवीसी 3 में कोई "व्यू/हेल्पर्स" फ़ोल्डर नहीं है। इस सुविधा को पूरी तरह कार्यान्वित करने से पहले स्कॉटगु की ब्लॉग पोस्ट लिखी गई थी, और कुछ नोट्स अब पूरी तरह से सटीक नहीं हैं।

आपके द्वारा लिखे गए "@helper" को कॉल करने के लिए आपको फ़ाइल नाम और साथ ही सहायक के नाम दोनों को शामिल करना होगा। उदाहरण के लिए, अगर आप इस सहायक है:

~/App_Code/MyHelper.cshtml 

और यह सामग्री:

@helper ShowStuff(string stuff) { 
    <p>@stuff</p> 
} 

तो फिर तुम यह इतना की तरह फोन:

@MyHelper.ShowStuff("some stuff!") 
+0

सहायक केवल App_Code पर फ़ाइल के साथ काम करता फ़ोल्डर। –

+0

मैं एक होस्टिंग प्रदाता को तैनात करने में एक समस्या में भाग गया जिसने App_Code फ़ोल्डर की अनुमति नहीं दी, इसलिए वर्तमान में इन सहायकों का उपयोग करने में असमर्थ हूं। http://stackoverflow.com/a/16057766/678338 –

+0

@ सेनमिल आप इसे अपने दृश्य के शीर्ष पर जोड़ सकते हैं "@using UtilsProject.Helpers" और अपने सहायक "@ Html.MyCustomHelper()" का उपयोग करने के लिए। मेरे आवेदन पर मैं UtilsProject नामक समाधान के लिए नई परियोजना जोड़ता हूं और इसके अंदर मेरे पास मेरा कस्टम सहायक है। –

1

आपके पास अच्छी संरचना है।

मैं एक उपयोगिता फ़ोल्डर के साथ एचटीएमएल फ़ोल्डर बदल जाएगा। आप वहां सभी प्रकार के हेल्पर्स जोड़ सकते हैं।

  • नियंत्रकों
  • मॉडल
  • दृश्य
  • उपयोगिता
  • फ्रेमवर्क

(यह अपने अनुप्रयोग के बूटस्ट्रैपिंग के लिए उपयोगी हो सकता है) और वहाँ वास्तव में कोई फिक्स "सर्वोत्तम व्यवहार" । बस सुनिश्चित करें कि आप अपनी कक्षाओं को स्पष्ट स्थानों में पा सकते हैं। अगर रीमोडल नहीं है।

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