MVC 4 @ स्क्रिप्ट "मौजूद नहीं है"


201

मैं सिर्फ एक ASP.NET MVC 4 परियोजना बनाया है और बनाने के लिए के लिए एक नियंत्रक और उस्तरा दृश्य Visual Studio 2012 आर सी का इस्तेमाल किया है Indexऔर Createक्रिया।

जब मैं एप्लिकेशन को चलाने के लिए आया था, और Createदृश्य में ब्राउज़ किया गया था, तो निम्न त्रुटि दिखाई गई थी:

संकलक त्रुटि संदेश: CS0103: वर्तमान संदर्भ में 'लिपियां' नाम मौजूद नहीं है

समस्या निम्न कोड है जो दृश्य के नीचे स्वचालित रूप से जोड़ा गया था:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

लिपियों का अस्तित्व क्यों नहीं है?

मैंने असेंबली सिस्टम में वेब पेज की कक्षा देखी। System.eb.Mvc.dll, v4.0.0.0

मैं निम्नलिखित सहायक गुण उपलब्ध देख सकता हूं:

  • अजाक्स
  • एचटीएमएल
  • यूआरएल

लेकिन लिपियों का नाम कुछ नहीं।

कोई विचार?

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

मेरी Web.config फ़ाइल इस तरह दिखती है (जो विजुअल स्टूडियो द्वारा बनाई गई है उससे अछूती है):

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.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" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

EDIT # 2:

लोग @Scriptsसहायक का उपयोग करने के बारे में ब्लॉगिंग कर रहे हैं :

अभी तक सिर्फ एक ताजा विंडोज 8 स्थापित पर विजुअल स्टूडियो 2012 आरसी स्थापित करने के बाद भी मैं अभी भी उपयोग नहीं कर पा रहा हूं @Scripts, जबकि विजुअल स्टूडियो इसे उत्पन्न दृश्य में जोड़ता है!

समाधान नीचे प्रस्तुत किए गए हैं।

मुझे यकीन नहीं है कि इसे कैसे बंद किया जाए, क्योंकि अंत में एक अद्यतन समस्या को हल करने के लिए लग रहा था। मैंने एक नए प्रोजेक्ट का उपयोग करते हुए, मैंने एक बार क्लीन चेक किया था। लेकिन उसी असफल परियोजना को मैंने विभिन्न अद्यतन और कोई स्पष्ट स्पष्ट हस्तक्षेप के बाद अब ठीक काम किया है। सभी विचारों के लिए धन्यवाद, लेकिन उस समय निश्चित रूप से एक मुद्दा था;)


पहले से ही Web.config में जोड़ने का प्रयास करें? <system.web.webPages.razor> <pages pageBaseType=""> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> etc... </pages>
जाच देव

मैंने Web.config से अनुभाग जोड़ा है, लेकिन मैंने उस फ़ाइल में कुछ भी नहीं बदला है।
FantasticJamieBurns

6
आप "My Views \ Web.config" फ़ाइल को रूट नहीं करते हैं web.config। किसी भी दर पर, यह गलत है और गायब है <name namesace = "System.Web.Optimization" /> जोड़ें। आपने RC से पहले VS12 बीटा इंस्टॉल किया था? क्या win8 संस्करण?
रिकएंडएमएसएफटी

@RickAndMSFT मैंने वीएस 2012 आरसी आईएसओ से इंस्टॉल के साथ-साथ रिलीज़ पूर्वावलोकन आईएसओ से एक साफ Win8 इंस्टॉलेशन किया, यह सुनिश्चित करने के लिए कि यह संस्करणों का संघर्ष नहीं था।
FantasticJamieBurns

@RickAndMSFT मेरे दृश्य \ Web.config क्षेत्रों में किसी भी दृश्य को याद करेंगे
Maslow

जवाबों:


268

यहाँ कुंजी जोड़ना है

 <add namespace="System.Web.Optimization" /> 

BOTH web.config फ़ाइलों के लिए। मेरा परिदृश्य यह था कि मेरे पास प्रोजेक्ट में मुख्य System /eb.Optimization संदर्भ और मुख्य / रूट web.config था, लेकिन @ स्क्रिप्ट अभी भी ठीक से काम नहीं किया। आपको इसे काम करने के लिए Views web.config फ़ाइल में नामस्थान संदर्भ जोड़ना होगा।

अपडेट करें:

MVC 4 System.Web.Optimization की रिलीज के बाद से अब अप्रचलित है। यदि आप एक रिक्त समाधान के साथ शुरुआत कर रहे हैं, तो आपको निम्नलिखित नगेट पैकेज स्थापित करने की आवश्यकता होगी:

Install-Package Microsoft.AspNet.Web.Optimization

आपको अभी भी अपने web.config फाइलों में System.Web.Optimization का संदर्भ देना होगा। अधिक जानकारी के लिए इस विषय को देखें:

MVC-3-Convert-to-4 ऐप के लिए System.Web.Optimization के संदर्भ को कैसे जोड़ा जाए

जैसा कि कई ने कहा, वी.एस. को पुनः आरंभ करने के लिए इस कार्य को करने के लिए उपरोक्त चरणों की आवश्यकता हो सकती है।


8
आपको Install-Package Microsoft.AspNet.Web.Optimizationरिक्त ASP.NET MVC4 टेम्पलेट से भी चलना पड़ सकता है क्योंकि यह डिफ़ॉल्ट रूप से शामिल नहीं है।
पोर्टमैन

@Portman हाँ यदि आप रिक्त MVC प्रोजेक्ट टेम्पलेट के साथ शुरू करते हैं तो आपको Microsoft.AspNet.Web.Optimization पैकेज स्थापित करना होगा।
मार्को

2
यह केवल मेरे लिए व्यू फ़ोल्डर में web.config में जोड़ा जाना चाहिए।
user1534664

9
यह वास्तव में समाधान है। हालाँकि, मुझे पहचाने जाने के लिए विज़ुअल स्टूडियो को पुनः आरंभ करने की आवश्यकता थी।
जेसन ईडन

4
मुझे इसे अपने Views / Web.config में जोड़ना था और फिर Visual Studio को पुनरारंभ करना था।
कावरमैन

48

@Stylesऔर पुस्तकालय @Scriptsद्वारा प्रदान किए गए 2 नए सहायक हैं System.Web.Optimization। जैसा कि नाम से पता चलता है, वे क्रमशः CSS और जावास्क्रिप्ट फ़ाइलों या संसाधनों को बंडल और मिनिमाइज़ करते हैं।

नाम स्थान पुन: प्रयास करे System.Web.Optimizationकरके या तो @usingनिर्देश या के माध्यम सेweb.config

http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#BundlingAndMinification

अपडेट करें

Microsoft ने बंडलिंग / मिनिफ़िकेशन नामक एक अलग पैकेज में स्थानांतरित कर दिया है Microsoft.AspNet.Web.Optimization। आप से डाउनलोड कर सकते हैं विधानसभा nuget

यह पोस्ट आपके लिए उपयोगी होगी।


2
System.Web जोड़ना .ptimization का कहना है कि "CS0234: नाम या अनुकूलन का प्रकार 'नामकरण' System.Web" नामस्थान में मौजूद नहीं है। System.Web.Optimization या तो जोड़ने के लिए कोई संदर्भ नहीं है।
फैंटास्टिकजैमीबर्न

1
System.Web.Optimization नामस्थान को अप्रचलित कर दिया गया है क्योंकि यह उत्तर दिया गया था, इसके बजाय Microsoft.AspNet.Web.Optimization का उपयोग करने का प्रयास करें। अधिक जानकारी के लिए इस प्रश्न को देखें: stackoverflow.com/questions/9475893/…
जेरेमी जेरेल

3
स्पष्टता: System.Web.Optimizationनाम स्थान को पदावनत नहीं किया System.Web.Optimization.dllजाता है।
डेस्परर्ट

धन्यवाद! यह मेरे लिए काम कर रहा है जब मुझे विभिन्न क्षेत्र के लेआउट के साथ परेशानी हुई।
डेवलपर

48

ऊपर से एक छोटा कदम गायब था, जो मुझे एक और पोस्ट पर मिला। जोड़ने के बाद

<add namespace="System.Web.Optimization" />

अपने ~/Views/web.configनामस्थानों के पास , Visual Studio को फिर से खोलें और खोलें। यह वही है जो मुझे यह काम करने के लिए करना था।


2
यहाँ भी, VS के पुनरारंभ ने काम किया लेकिन इससे पहले कि यह अभी भी त्रुटि दिखाता है ...?
एंड्रियास

वीएस को बंद करना मेरे मामले में आवश्यक नहीं था, लेकिन मुझे जो मैं उपयोग कर रहा था -cshtml दृश्य को बंद करना और फिर से खोलना था
joalcego

29

मैं क्षेत्रों का उपयोग कर रहा हूं, और अभी इस मुद्दे के खिलाफ आया हूं, मैंने अभी रूट web.config से क्षेत्रों के वेब पर नामस्थानों की नकल की है। विन्यास और यह अब काम करता है !!

    <add namespace="System.Web.Helpers" />
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Optimization" />        
    <add namespace="System.Web.Routing" />
    <add namespace="System.Web.WebPages" />

15

मुझे भी यही समस्या थी और मैंने इसे नीचे ट्रैक करने में मदद करने के लिए WinMerge का उपयोग किया। लेकिन जैसा कि मैंने इसे और अधिक शोध किया, मैंने पाया कि रिक के पास इसके लिए एकदम सही ब्लॉग पोस्ट है।

सारांश:

  • <add namespace="System.Web.Optimization"/>दोनों web.config फ़ाइलों में जोड़ें
  • Daud Install-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
  • बंडलिंग कोड अपडेट करें
  • लेआउट फ़ाइल अपडेट करें
  • अंतिम चरण 10 अन्य पुस्तकालयों को अद्यतन करना है। मैंने नहीं किया और यह ठीक काम किया। तो ऐसा लगता है कि आप इस एक को शिथिल कर सकते हैं (जब तक कि मैंने पहले से 1 या उससे अधिक अपडेट नहीं किया है)। :)

इस दान का जवाब देने के लिए धन्यवाद! (और मेरे ब्लॉग को इंगित करते हुए)। उनके सवाल से लगा कि उन्होंने आरसी के साथ शुरुआत की है, लेकिन मुझे लगता है कि आप सही हैं। उन्होंने सिर्फ RC के साथ एक बीटा प्रोजेक्ट के लिए एक नियंत्रक जोड़ा।
रिकएंडएमएसएफटी

कुछ हफ़्ते हो गए हैं और आप दोनों निश्चित रूप से मुझे खुद अनुमान लगा रहे हैं। मैंने निश्चित रूप से वीएस 2012 को अपने टैबलेट पर डाल दिया था जिसमें मेट्रो एप्स के अलावा कुछ भी नहीं था और यह विफल रहा। मैं एक वीएम में फिर से कोशिश करूंगा।
FantasticJamieBurns

इसने मेरे लिए काम किया। आपको क्या करने की आवश्यकता है, इस बारे में सटीक निर्देशों के लिए जुड़ा हुआ लेख पढ़ें।
जस्टिन

11

मेरी भी यही समस्या थी:

System.Web.Optimization संस्करण जो मैं उपयोग कर रहा था वह MVC4 RC के लिए पुराना था।

मैंने वीएस 2010 में पैकेज मैनेजर का उपयोग करके अपने पैकेजों को अपडेट किया।

इस MSDN ब्लॉग में , श्री एंडी बात करते हैं कि अपने MVC 4 बीटा प्रोजेक्ट को MVC 4 RC में कैसे अपडेट करें। मेरे पैकेज को अपडेट करने से मेरे लिए हल करने के लिए लिपियों (विशेष रूप से वेब अनुकूलन एक) को मिला:

नवीनतम System.Web.Optimization पैकेज स्थापित करने के लिए, पैकेज प्रबंधक कंसोल (उपकरण -> लाइब्रेरी पैकेज प्रबंधक -> पैकेज प्रबंधक कंसोल) का उपयोग करें और नीचे दिए गए कमांड को चलाएं:

Install-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization

अपने संदर्भ में पैकेज में शामिल System.Web.Optimization फ़ाइल का उपयोग करें।

अन्य पैकेजों को अपडेट करने के लिए: टूल मेनू -> लाइब्रेरी पैकेज मैनेजर -> समाधान के लिए NuGet पैकेज प्रबंधित करें।


5

एक नया MVC 4 RC इंटरनेट एप्लिकेशन बनाएं और इसे चलाएं। लॉगिन पर नेविगेट करें जो समान कोड का उपयोग करता है

 @section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

क्या काम करने के लिए Login.cshtml अनुमति देता है, दृश्य \ Web.config फ़ाइल है (ऐप रूट संस्करण नहीं)

<namespaces>

    <add namespace="System.Web.Optimization"/>

  </namespaces>

आपका Create View काम क्यों नहीं कर रहा है और लॉगिन है?


मैं लॉगिन का उपयोग नहीं कर रहा था - उस समय अच्छी तरह से टूट गया हो सकता है।
फैंटास्टिकजैमीबर्न्स

5

निम्न के रूप में अपने रेजर दृश्य के शीर्ष पर System.Web.Optimization आयात करें:

@using System.Web.Optimization

3

मैं इस समस्या में भाग गया, हालांकि कमांड चलाते समय:

Install-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization 

मुझे गुप्त संदेश प्राप्त हुआ (कॉफ़ी के पहले कप से पहले बहुत बड़ा प्यार होगा):

इंस्टॉल-पैकेज: इस प्लेटफ़ॉर्म पर निर्दिष्ट क्रिप्टोग्राफ़िक एल्गोरिदम समर्थित नहीं है।

मैं इसे विंडोज़ एक्सपी एसपी 3 (पसंद से नहीं) पर चला रहा हूं और मुझे जो मिला वह यह था कि मुझे एएसपी.नेट फोरम पर यूजर आर्ट्सनोब द्वारा पोस्ट किए गए निर्देशों का पालन करना था।

  • कृपया Nuget को अनइंस्टॉल करें और इसे पुनः इंस्टॉल करने का प्रयास करें। यदि आप ऐसा करने में असमर्थ हैं, तो एक प्रशासक के रूप में लॉगिन करें।
  • टूल्स => एक्सटेंशन मैनेजर => पर जाएं "Nuget Package Manager" => UnInstall चुनें
  • "Nuget" => स्थापित करके इसे फिर से स्थापित करें।
  • यदि यह काम नहीं करता है, तो कृपया स्थापित करने का प्रयास करें, 1.7.x संस्करण जैसा कि मैंने पिछले पोस्ट में उल्लेख किया है (इसका मतलब यह नहीं है, आपको पिछले संस्करण का उपयोग करना होगा, अगर यह ठीक काम करता है, तो हम इस बग की रिपोर्ट कर सकते हैं, और प्राप्त कर सकते हैं नवीनतम संस्करण के लिए पैच)।

एक बार जब मैंने इसे चलाया तो मैं Web.Optimization को अपडेट करने के लिए कमांड लाइन चला सकता था।

आशा है कि यह किसी को खोदने से बचाता है।


2

बस लिखें

@section Scripts{
    <script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/bundles/jqueryval")"></script>
}

@ अराजकता प्रतिस्थापन के लिए धन्यवाद - यह एक अच्छा अस्थायी समाधान होगा। लेकिन मुख्य सवाल था "लिपियों का अस्तित्व क्यों नहीं है?"
फैंटास्टिकजैमीबर्न्स

@ जैमी का अस्तित्व होना चाहिए? मेरा मतलब है, जहां तक ​​मुझे याद है, वहां कोई चीर-फाड़ करने वाला हेल्पर नहीं है। शायद आप किसी तीसरे पक्ष के सहायक का उपयोग करने की कोशिश कर रहे हैं?
धनु राशि

1
मैंने स्वयं उस कोड को नहीं जोड़ा - विजुअल स्टूडियो 2012 RC ने इसे जोड़ा जब इसने मेरे क्रिएट एक्शन के लिए व्यू बनाया। मुझे लगता है कि किसी तरह मेरा MVC 4 सही नहीं है। यह कहीं न कहीं काम करना चाहिए क्योंकि स्कॉट हैंसेलमैन
FantasticJamieBurns

1

मैंने बीटा से RC में अपग्रेड किया और 'लिपियों' का सामना नहीं किया। पूरे वेब पर छा गया और अंतिम समाधान वही है जो N40JPJ ने कहा है कि एक और वर्कआर्डन:

View \ Web.config में निम्नलिखित कॉपी करें:

  <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.Optimization"/>
    <add namespace="System.Web.Helpers"/>
  </namespaces>

और नीचे View \ Shared_Layout.cshtml

@if (IsSectionDefined("scripts")) 
{
       @RenderSection("scripts", required: false)
}

आशा करता हूँ की ये काम करेगा।


1
if (IsSectionDefined())जब तक आप एक elseखंड प्रदान नहीं कर रहे हैं तब तक उपयोग करने की कोई आवश्यकता नहीं है । तथ्य यह है कि आप required: falseपहले से ही कह रहे हैं कि उस खंड को परिभाषित नहीं किया जा सकता है, और उस स्थिति में अनुभाग को छोड़ दिया जाएगा। तो यह अनावश्यक अतिरिक्त कोड है।
एलिके

0

जाहिरा तौर पर आपने 'लिपियों' फ़ोल्डर के बिना एक 'खाली' परियोजना प्रकार बनाया है। मेरी सलाह पूर्ण 'लिपियों' फ़ोल्डर के साथ एक 'बुनियादी' परियोजना प्रकार बनाएँ।

सभी डेवलपर्स के संबंध में।


0

बस अपने कंट्रोलर के रेजर व्यू बनाएं और संपादित करें से कोड को हटाएं / छिपाएं।

 @section Scripts {  

   @Scripts.Render("~/bundles/jqueryval")  
 }  

0
  1. : व्यू पेज हटा दें।
  2. : नामस्थान webconfig जोड़ें (दृश्य निर्देशिका में)
  3. : देखने की कोशिश करो!

सौभाग्य...


0

पॉट के लिए एक और - एक ही समस्या को हल करने की कोशिश में बिताए युग - भले ही इसे वेब में परिभाषित किया गया था। जड़ और दृश्य की जड़ के लिए वेबफिग। मुझे लगता है कि मैंने गलती से इसे जोड़ा है <system.web><pages><namespaces>, और <system.web**.webPages.razor**><pages><namespaces>तत्व नहीं ।

वास्तव में आसान है कि याद आती है!


0

जब मैं इस कोड को लाइक करने वाले पेज पर दर्ज करता हूं:

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

यह त्रुटि होती है: त्रुटि। आपका अनुरोध संसाधित करते समय एक त्रुटि हुई।

और यह अपवाद मेरे लॉग पर दर्ज किया गया है:

System.Web.HttpException (0x80004005): The controller for path '/bundles/jqueryval' was not found or does not implement IController.
   em System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType)
...

मैंने इस पृष्ठ पर सभी युक्तियों की कोशिश की है और उनमें से कोई भी मेरे लिए हल नहीं है। इसलिए मैंने अपने संकुल फ़ोल्डर को देखा है और देखा है कि मेरे पास System.Web.Optmization.dll के दो संस्करण हैं:

  • Microsoft.AspNet.Web.Optimization.1.1.0 (v1.1.30515.0 - 68,7KB)
  • Microsoft.eb.Optimization.1.0.0-beta (v1.0.0.0 - 304KB)

मेरा प्रोजेक्ट पुराने बीटा संस्करण का संदर्भ दे रहा था। मैंने केवल नए संस्करण (69KB) के संदर्भ को बदल दिया और eveything ने ठीक काम किया।

मुझे लगता है कि यह किसी की मदद कर सकता है।


0

इसका एक स्पष्ट समाधान है। मुझे भी बाद में यही समस्या हुई। असेंबली रेफरेंस या ... से संबंधित नहीं। यह तब होगा जब MVC के आंशिक कॉलिंग दृश्य, जब आपके पास जटिल पृष्ठ संरचनाएँ हों। इसलिए प्रत्येक पृष्ठ पर (शायद एक मास्टर पेज या आंशिक) प्रत्येक भाग को अलग से कॉल / रेंडर करना, पृष्ठ के आवश्यक भागों को बेली की तरह न देखने का कारण होगा:

@RenderSection("Scripts", required: false)

यह केवल संबंधित अनुभाग को खोजने और प्रस्तुत करने के लिए पृष्ठ को बाध्य करता है और विफलता के मामले में आप की तरह एक त्रुटि संदेश दिखाता है।

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

ऐसा नहीं है कि मेरे अनुभव के अनुसार, प्रोग्रामिंग में कुछ सशर्त स्थितियां आपको सही त्रुटि नहीं दिखाने का कारण बनती हैं।


0

मेरे पास यह मुद्दा था जब मैंने एक परियोजना में एक क्षेत्र जोड़ा था जिसमें कोई भी नहीं था। इससे छुटकारा पाने के लिए बस web.config को रूट व्यू फोल्डर के साथ क्षेत्र के व्यू फ़ोल्डर में कॉपी कर लें और यह काम करने लगे।


0

मैं _Layout.cshtml में कोड के इस भाग को जोड़कर MvcMusicStore में इस समस्या को हल करता हूं

@if (IsSectionDefined("scripts")) 
{
       @RenderSection("scripts", required: false)
}

और इस कोड को Edit.cshtml से हटा दें

 @section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

कार्यक्रम चलाएं इंशाल्लाह आपके साथ काम करेगा।


0

मेरे लिए यह समस्या हल हो गई, NuGet पैकेज मैनेजर कंसोल में निम्नलिखित लिखें:

update-package microsoft.aspnet.mvc -reinstall

0

जब मैंने हाल ही में MVC4 का उपयोग करना शुरू किया, तो मैंने खाली टेम्पलेट के साथ एक परियोजना बनाते समय उपरोक्त मुद्दे का सामना किया। समस्या को ठीक करने के लिए चरण।

  1. गोटो TOOLS-> Library Package Manager-> Packager Manager Console नीचे कमांड पेस्ट करें और एन्टर प्रेस करें Install-Package Microsoft.AspNet.Web.Optimization : सफल इंस्टॉलेशन की प्रतीक्षा करें।
  2. गोटो Web.Config फ़ाइल को रूट लेवल में और नीचे दिए गए नेमस्पेस को पेज नेमस्पेस सेक्शन में जोड़ें। जोड़ना<namespace="System.Web.Optimization" />
  3. गोटो Web.Config इन व्यू फ़ोल्डर और चरण 2 का पालन करें।
  4. समाधान बनाएं और चलाएं।

चरण 1 में उल्लिखित पैकेज सिस्टम संदर्भों की तरह समाधान संदर्भों में कुछ सिस्टम पुस्तकालयों को जोड़ देगा। MVC4 में खाली टेम्पलेट्स के लिए डिफ़ॉल्ट संदर्भ नहीं है।

आशा है कि ये आपकी मदद करेगा। धन्यवाद


0

MVC3 से MVC4 में किसी प्रोजेक्ट को अपग्रेड करते समय मेरे पास एक समान त्रुटि थी।

संकलक त्रुटि संदेश: CS0103: नाम [blah] वर्तमान संदर्भ में मौजूद नहीं है

मेरे मामले में, मेरे कई Web.Configs में पुराने संस्करण संख्याएँ थीं।

  1. मुझे अपने प्रोजेक्ट में System.ebeb.Mvc संस्करण संख्या को "3.0.0.0" से "Web.0.Config" हर वेब में अपडेट करने की आवश्यकता थी।
  2. मुझे अपने सभी System.Web.WebPages, System.Web.Helpers और System.Web.Razor वर्जन नंबरों को अपने प्रोजेक्ट में "1.0.0.0" से "2.0.0.0" तक अपडेट करने की जरूरत है।

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

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

...

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

अपने प्रत्येक दृश्य निर्देशिका में Web.Configs की समीक्षा करना सुनिश्चित करें।

आप ASP.NET MVC 3 प्रोजेक्ट को ASP.NET MVC 4 में अपग्रेड करने के बारे में अधिक पढ़ सकते हैं ।


0

यदि आपने अपने web.config में जोड़ा है और यह अभी भी संदेश दिखाता है, तो आपको अपनी परियोजना को बंद करने और इसे फिर से खोलने की आवश्यकता है, अब यह मौजूद होगा और @ Styles.Render ("") और @ Scripts.Render () ठीक काम करेगा।


-1

इसे इस्तेमाल करे:

@section Scripts 
{
    Scripts.Render("~/bundles/jqueryval")  // <- without ampersand at the begin
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.