c# - टाइपस्पेस 'System.Web.Mvc' नाम या नामस्थान नाम मौजूद नहीं है




asp.net-mvc-3 (14)

एमवीसी 3 समाधान खरीदना अच्छी तरह से चला गया लेकिन ब्राउज़र में एक त्रुटि मिली है:

कंपाइलर त्रुटि संदेश: CS0234: नाम या नामस्थान नाम 'HTML' नामस्थान 'System.Web.Mvc' में मौजूद नहीं है (क्या आप एक असेंबली संदर्भ खो रहे हैं?)

Source Error:
Line 25:         <add namespace="System.Web.Mvc" />
Line 26:         <!--<add namespace="System.Web.Mvc.Ajax" />-->
Line 27:         <add namespace="System.Web.Mvc.Html" />
Line 28:         <add namespace="System.Web.Routing" />
Line 29:         <add namespace="System.Web.WebPages" />

मैंने NuGet साथ समाधान के लिए पैकेट स्थापित किए हैं और सभी परियोजनाओं MVC3 लिए सेट अप किया है। क्या MVC3 में लाइब्रेरीज़ System.Web.Mvc.Ajax . System.Web.Mvc.Html , System.Web.Mvc.Html और अन्य शामिल हैं? मुझे त्रुटि क्यों मिल रही है?

संदर्भ फ़ोल्डर में, मेरे पास System.Web.Mvc है

Runtime version: v4.0.30319 ,

Version: 3.0.0.0

web.config

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>
    <pages>
      <namespaces>
        <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.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <httpRuntime targetFramework="4.5" encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    <machineKey compatibilityMode="Framework45" />
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </profile>
    <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <roleManager defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </roleManager>
    <sessionState mode="InProc" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
      </providers>
    </sessionState>
  </system.web>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
  <connectionStrings>
    <add name="EFDbContext" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=SportStore;Integrated Security=True;Pooling=False;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

MSDN सिस्टम। वेब.एमवीसी नेमस्पेस

फ़ाइल packages.config :

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="5.0.0-rc" />
  <package id="jQuery" version="1.7.2" />
  <package id="jQuery.UI.Combined" version="1.8.11" />
  <package id="jQuery.Validation" version="1.9" />
  <package id="Microsoft.AspNet.Mvc" version="3.0.20105.1" />
  <package id="Microsoft.AspNet.Providers.Core" version="1.0" />
  <package id="Microsoft.AspNet.Providers.LocalDB" version="1.0" />
  <package id="Microsoft.AspNet.Razor" version="1.0.20105.408" />
  <package id="Microsoft.AspNet.WebPages" version="1.0.20105.408" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
  <package id="Modernizr" version="2.0.6" />
  <package id="Moq" version="4.0.10827" />
  <package id="Ninject" version="3.0.1.10" />
</packages>

Nuget पैकेज मैनेजर में निम्न आदेश को चलाने के लिए यह मेरे लिए तय किया गया है:

update-package microsoft.aspnet.mvc -reinstall

अपने csproj में संदर्भ पथ देखें और जांचें।

मैंने System.Web.Mvc (और अन्य) के संदर्भ हटा दिए थे और उन्हें कस्टम पथ पर पढ़ा था। C:\Project\OurWebReferences

हालांकि, ऐसा करने के बाद, अभी भी csproj में संदर्भ पथ नहीं बदला था। था

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\OurWebProject\bin\Debug\System.Web.Mvc.dll</HintPath>
</Reference>

मैन्युअल रूप से बदल दिया

<Reference Include="System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
        <HintPath>..\..\..\..\OurWebReferences\System.Web.Mvc.dll</HintPath>
</Reference>

पथ केवल एक उदाहरण हैं।


इस उत्तर को प्रश्न की तारीख दे दी गई है, लेकिन किसी को यह उपयोगी लगेगा।

उपरोक्त समाधानों में से कोई भी मेरे लिए एक स्थानीय प्रोजेक्ट, नेट फ्रेमवर्क 4.5 एमवीसी 4 पर विजुअल स्टूडियो 2012 में काम नहीं करता है। संदर्भ के लिए, मैं कोडप्रोजेक्ट पर एक बेयरबोन वेब एपी बनाने पर एक ट्यूटोरियल का अनुसरण कर रहा था ( http://www.codeproject.com/Articles/615805/Creating-a-Clean-Minimal-Footprint-ASP-NET-WebAPI ) जब मैं इस समस्या में भाग गया।

मेरे लिए क्या काम किया गया था स्पष्ट रूप से "System.Web.Mvc" को मेरे एप्लिकेशन के संदर्भ में जोड़ रहा था, भले ही एप्लिकेशन पहले से ही "System.Web" का संदर्भ दे।


ऐसा लगता है कि आपके डीएलएल को कॉपीलोकल / सच्चाई या इसके लिए किसी भी अन्य प्रमुख फिक्स्ड में सेट करने से आपकी समस्या ठीक हो जाएगी, लेकिन यहां एक और एज-केस है जिसने मुझे बर्बाद समय के 20 मिनट तक पकड़ा।

जब आप अपने नामस्थान को अपने दृश्य / वेब.कॉन्फिग में जोड़ते हैं, तो सुनिश्चित करें कि वे सही तरीके से सही हैं:

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="THE.NameSpace" />
        <add namespace="THE.Namespace" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

कॉपी स्थानीय = सही मेरी परियोजनाओं में से एक के लिए हल किया गया था। लेकिन एक और प्रोजेक्ट में, मुझे एक ही त्रुटि मिलती है, कॉपी स्थानीय = सही सेट करने की कोशिश की, लेकिन यह मेरी समस्या का समाधान नहीं करता है। परियोजना गुणों में 4.5.1 से 4.5 तक लक्ष्य ढांचे को बदलने से इसकी सहायता मिली।


जब मैं आईआईएस से चलाता हूं और डिफ़ॉल्ट साइट के लिए ऐप पूल को .NET संस्करण 2.0 पर सेट किया जाता है तो यह आम तौर पर मुझे पकड़ता है। दृश्य स्टूडियो से आईआईएस का उपयोग करते समय यह एक आभासी निर्देशिका बनाता है लेकिन फिर भी डिफ़ॉल्ट साइट के ऐप पूल के तहत चलता है। यदि वेब सर्वर में निर्माण का उपयोग करते हैं, तो अपनी वेब प्रोजेक्ट पर राइट क्लिक करें, गुणों पर जाएं और सुनिश्चित करें कि आप इसे .NET के दाएं संस्करण के तहत चला रहे हैं। आईआईएस पर अपने ऐप पूल पर .NET संस्करण की जांच करें।

प्रोजेक्ट कैसे बनाया गया था, इस बारे में मेरी आखिरी टिप्पणी के बाद - क्या आप नीचे दिए गए असेंबली को सही तरीके से शामिल कर रहे हैं (वीएस 10 में एमवीसी 3 प्रोजेक्ट टेम्पलेट द्वारा जेनरेट की गई डिफ़ॉल्ट वेब.कॉन्फिग फ़ाइल से लिया गया है):

<compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <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>

मुझे एक ही समस्या थी, मेरे लिए कोई भी समाधान काम नहीं करता था, अंततः मैंने System.Web.MVC हटा दिया और फिर जोड़ा, फिर सब कुछ सामान्य हो गया और मेरी समस्या हल हो गई।


मुझे एक ही समस्या थी, लेकिन मेरे मामले में अन्य कारक से उत्पन्न हुआ था। मैं इसे एक ही समस्या के साथ अन्य लोगों की मदद के लिए लिखता हूं। मेरे पास कई परियोजनाओं के साथ समाधान है। उनमें से दो System.Web.Mvc के साथ काम करते हैं, आम तौर पर हमारा संदर्भ बाह्य संकुल को इंगित कर रहा था जहां हमने उपयोग किए गए संस्करण को नियंत्रित किया था। किसी कारण से परियोजना संदर्भ में से एक जीएसी में जाता है और जीएसी डीएल (संस्करण 4.0.0.1) को इंगित करता है और प्रोग्राम को त्रुटि मिलती है। इसे ठीक करने के लिए:

सरल जांच करें कि System.Web.Mvc के संदर्भ समान निर्देशिका पथ में एक ही डीएलएल को इंगित करते हैं।

मुझे आशा है कि मदद करें।


मेरा समाधान समाधान के लिए Nuget संकुल प्रबंधित करें के तहत था ... - मेरे पास कुछ संकुल के लिए बहुत सारे अपडेट थे।

मुझे आधे कदम का बैक अप लेने दें और कहें कि मैंने खुद को खराब कर दिया क्योंकि मैंने समाधान और परियोजनाओं को एक फ़ोल्डर से दूसरी फ़ोल्डर में स्थानांतरित कर दिया ... इसलिए चीजें पहले से ही चीजों से बाहर थीं, जहां परियोजनाओं ने चीजों को सोचा था। सबकुछ ठीक से बढ़ गया, लेकिन स्पष्ट रूप से नुजेट भ्रमित हो जाता है जब तक कि आप मुझसे अलग दृष्टिकोण का उपयोग न करें।

समाधान पर वापस ... मैं बस समाधान के लिए Nuget संकुल प्रबंधित करने के लिए चला गया ... >> अपडेट >> माइक्रोसॉफ्ट और .NET और अद्यतन सभी बटन हिट।

सब कुछ सामान्य और खुश था।


मेरे पास एक ही समस्या थी, लेकिन उपरोक्त में से कोई भी मेरे लिए काम नहीं करता था। उन्होंने मुझे सही दिशा में हालांकि रखा था।

उदाहरण के लिए जब मैंने System.Web.Mvc संदर्भ के लिए "कॉपी स्थानीय" को "सत्य" पर सेट किया है, तो यह स्वचालित रूप से इसे गलत पर सेट करता है।

मेरे पास कई परियोजनाएं हैं जो मेरे समाधान में System.Web.Mvc संदर्भ पर निर्भर करती हैं, लेकिन केवल एक ही इस समस्या का कारण बनती है। वीएस 2012 में इस संदर्भ को पीले ध्यान त्रिकोण के साथ लेबल किया गया है।

इस संदर्भ को ढूंढें => इसे हटाएं => इसे फिर से जोड़ें

उसने मेरे लिए इसे हल कर दिया। उम्मीद है की यह मदद करेगा


मैंने अपनी साइट के बिन फ्रॉल्डर से System.Web.dll हटा दिया है।


मैंने एक एमवीसी 5 प्रोजेक्ट डाउनलोड किया और अपमानजनक मुद्दा इशारा किया

<add namespace="System.Web.Mvc.Ajax" />  

इस त्रुटि संदेश के साथ:

CS0234: The type or namespace name 'Ajax' does not exist in the namespace 'System.Web.Mvc' (are you missing an assembly reference?)

-> जिसमें मैं इस वेबपेज पर आया और एक साफ और कुछ चीजों आदि से कोशिश की ...

मेरे लिए क्या काम किया गया था बस

Manage Nuget and Update all the packages.  Then it worked fine.

यदि उपरोक्त में से कोई भी आपकी समस्या हल नहीं करता है तो स्थानीय ट्यूर की प्रतिलिपि बनाने के लिए बस System.Web.Mvc.dll के गुण सेट करें।

यह हल हो जाएगा


आपको एमवीसी अपडेट करना होगा।

  1. टूल्स -> NuGet पैकेज मैनेजर पर जाएं -> समाधान के लिए NuGet संकुल प्रबंधित करें
  2. "अपडेट्स" पर क्लिक करें
  3. "माइक्रोसॉफ्ट एएसपी.नेट एमवीसी" अपडेट करें
  4. समाधान पुनर्निर्माण






asp.net-mvc-3