2013-02-08 57 views
5

मैं एक अलग पुस्तकालय में रेजर (सीएसटीएमएल) फ़ाइलों को शामिल करने की कोशिश कर रहा हूं, एक अलग एमवीसी 4 परियोजना में शामिल किया जा सकता है। मुझे कुछ भी काम मिल गया है, सिवाय इसके कि इंटेलिजेंस कुछ प्रकारों के लिए गायब प्रतीत होता है, विशेष रूप से System.Web.Helpers.Json, हालांकि अन्य लोग भी मुझे अभी तक नहीं खोज पाए हैं। मेरी समस्या Razor views: Intellisense not working with C# 3 for class libraries से संबंधित हो सकती है लेकिन यह बिल्कुल वही नहीं है।कक्षा पुस्तकालय में रेजर, गायब इंटेलिसेंस

@model dynamic 
@{ 
    // ... some code ... 
    var options = new global::System.Web.Mvc.SelectListItem[] 
    { 
     new global::System.Web.Mvc.SelectListItem() 
     { 
      Text = "No", 
      Value = global::System.Web.Helpers.Json.Encode(false) 
     }, 
     new global::System.Web.Mvc.SelectListItem() 
     { 
      Text = "Yes", 
      Value = global::System.Web.Helpers.Json.Encode(true) 
     } 
    }; 
} 
@(global::System.Web.Mvc.Html.SelectExtensions.DropDownList(this.Html, string.Empty, options)) 

जब मैं शुरू में एक रेजर फ़ाइल को खोलने, मैं कई बार चेतावनी त्रुटियों के कई प्रकार देखेंगे:: यहाँ मेरी उस्तरा दृश्य से एक नमूना है

  • प्रकार या नाम स्थान का नाम 'गतिशील' नहीं कर सकता पाया जा
  • फ़ीचर 'परोक्ष स्थानीय चर आपके द्वारा लिखा गया' (आप एक विधानसभा संदर्भ याद कर रहे हैं?) नहीं किया जा सकता क्योंकि यह आईएसओ 2 सी # भाषा विनिर्देश
  • फ़ीचर 'वस्तु initializ का हिस्सा नहीं है एर 'का इस्तेमाल किया नहीं किया जा सकता है क्योंकि यह हिस्सा नहीं है ...
  • प्रकार या नाम स्थान का नाम' Json System.Web.Helpers ' ' नाम स्थान में मौजूद नहीं है '(आप याद कर रहे हैं एक विधानसभा संदर्भ?)

जब मैं प्रोजेक्ट का निर्माण करता हूं तो पहले दो तीन प्रकार की त्रुटियां दूर हो जाती हैं, लेकिन आखिरी वाला बने रहेंगे। जब मैं System.Web.Helpers. टाइप करता हूं तो इंटेलिजेंस प्रकट होता है जिसमें केवल Antiforgery, UnvalidatedRequestValues, और Validation शामिल हैं। जब मैं एक .cs फ़ाइल में एक ही कोड टाइप करता हूं, तो मुझे Json और अन्य सभी विकल्प दिखाई देने की उम्मीद है। और जब मैं इन फ़ाइलों को अपनी वास्तविक एमवीसी प्रोजेक्ट में कॉपी करता हूं, तो यह संपादक में कोई त्रुटि नहीं दिखाता है और ठीक चलता है। मैं कैसे इस वर्ग पहचान करने के लिए IntelliSense मिलता है

<configuration> 
    <configSections> 
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.Helpers" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

    <appSettings> 
    <add key="webpages:Enabled" value="false" /> 
    </appSettings> 

    <system.web> 
    <compilation targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
     <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </assemblies> 
    </compilation> 

    <httpHandlers> 
     <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/> 
    </httpHandlers> 
    <pages 
     validateRequest="false" 
     pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
     pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" 
     userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <controls> 
     <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" /> 
     </controls> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
     <remove name="BlockViewHandler"/> 
     <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 
    </handlers> 
    </system.webServer> 
</configuration> 

:

यहाँ Web.config फ़ाइल मैं अपने प्रोजेक्ट में शामिल किया है है हो भी यहां तक ​​काम करने के लिए?

उत्तर

0

गतिशील का उपयोग करते समय आप इंटेलिसेंस के लाभ खो देते हैं। आपको दृढ़ता से टाइप किए गए दृश्य का उपयोग करने का प्रयास करना चाहिए। नियंत्रक में, मॉडल विधि में पारित दृश्य विधि के ओवरलोड के माध्यम से मॉडल निर्दिष्ट करने का प्रयास करें। यह ViewData.Model प्रॉपर्टी का मान दृश्य विधि में दिए गए मान पर सेट करता है। फिर देखें कि मॉडल किस प्रकार का मॉडल @model घोषणा का उपयोग कर रहा है। आपको मॉडल प्रकार के पूर्ण योग्य प्रकार के नाम की आपूर्ति करने की आवश्यकता हो सकती है।