Solusi Buiding MVC3 berjalan dengan baik tetapi ada kesalahan di browser:
Pesan Kesalahan Kompiler: CS0234: Tipe atau nama namespace 'Html' tidak ada di namespace 'System.Web.Mvc' (apakah Anda kehilangan referensi perakitan?)
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" />
Saya telah menginstal paket untuk solusi dengan NuGet
dan mengatur untuk semua proyek MVC3
. Apakah MVC3
termasuk perpustakaan System.Web.Mvc.Ajax
, System.Web.Mvc.Html
dan lainnya? Mengapa saya mendapatkan kesalahan?
Di folder Referensi, saya memiliki 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 namespace System.Web.Mvc
file 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>
c#
asp.net-mvc-3
J.Olufsen
sumber
sumber
System.Web.MVC
tidak disalin kebin
folder sejak MS14-059Jawaban:
Bersihkan solusi Anda dan kemudian atur properti file-file tersebut
Copy Local = True
.Untuk mengatur properti Salin Lokal ke Benar atau Salah
Di Solution Explorer, klik tombol Tampilkan Semua File untuk menampilkan simpul Referensi.
sumber
System.Web.Mvc
Untuk alasan apa pun, DUA solusi saya memiliki proyek web yang secara spontan menghapus instalan MVC asp.net. Saya menginstalnya dari Nuget dan sekarang keduanya bekerja lagi. Ini terjadi setelah sejumlah pembaruan windows baru-baru ini yang mencakup pembaruan .net framework untuk versi yang saya gunakan (4.5.1).
Sunting: Dari Blog .Net Web Development dan Tools:
Pembaruan Keamanan Microsoft Asp.Net MVC MS14-059 mematahkan build saya!
sumber
Yang ini biasanya menangkap saya ketika saya menjalankan dari IIS dan kumpulan aplikasi untuk situs default diatur ke .NET versi 2.0. Saat menggunakan IIS dari visual studio itu menciptakan direktori virtual tetapi masih berjalan di bawah kumpulan aplikasi situs default. Jika menggunakan server web build, klik kanan pada proyek web Anda, buka properti dan pastikan Anda menjalankannya di bawah versi .NET yang tepat. Pada IIS, periksa versi .NET di kumpulan aplikasi Anda.
Berikut dari komentar terakhir saya tentang bagaimana proyek dibuat - apakah Anda benar termasuk majelis, seperti di bawah ini (diambil dari file web.config default yang dihasilkan oleh template proyek MVC3 di VS10):
sumber
Anda perlu memperbarui MVC.
sumber
Saya memiliki masalah yang sama - skenario saya adalah bahwa saya mereferensikan System.Web.Mvc.dll baru dari folder lib dan saya tidak memiliki "Copy Local" yang disetel ke true. Aplikasi itu kemudian kembali ke versi di GAC yang tidak memiliki ruang nama yang benar (Html, Ajax dll) di dalamnya dan memberi saya kesalahan run time.
sumber
Solusi saya ada di bawah Manage Nuget Packages for Solution ... - Saya punya sekian banyak pembaruan yang harus dilakukan untuk beberapa paket.
Biarkan saya mundur setengah langkah dan mengatakan bahwa saya mengacaukan diri saya sendiri karena saya memindahkan solusi dan proyek-proyek dari satu folder ke folder lain ... jadi semuanya sudah menjadi rusak dibandingkan dengan di mana proyek-proyek itu memikirkan segalanya. Semuanya bergerak dengan baik, tetapi ternyata Nuget menjadi bingung kecuali Anda menggunakan pendekatan yang berbeda dari yang saya lakukan.
Kembali ke solusi ... Saya hanya pergi ke Manage Nuget Packages for Solution ... >> Pembaruan >> Microsoft dan .NET dan tekan tombol Update All .
Semuanya kembali normal dan bahagia.
sumber
Saya mengunduh proyek mvc 5 dan masalah yang menyinggung menunjuk
Dengan pesan kesalahan ini:
-> di mana saya datang ke halaman web ini dan mencoba membersihkan dan beberapa hal di atas dll ...
Yang berhasil bagi saya adalah hanya untuk
sumber
Menjalankan perintah berikut di manajer paket nuget memperbaikinya untuk saya:
sumber
Jawaban ini agak terlambat diberikan tanggal pertanyaan, tetapi seseorang mungkin merasa berguna.
Tidak ada solusi di atas yang bekerja untuk saya di Visual Studio 2012 pada proyek lokal, Net Framework 4.5 MVC 4. Untuk konteksnya, saya mengikuti tutorial tentang membuat barebones Web Api di CodeProject ( http://www.codeproject.com/ Artikel / 615805 / Membuat-Bersih-Minimal-Jejak-ASP-NET-WebAPI ) ketika saya mengalami masalah ini.
Apa yang berhasil bagi saya secara eksplisit menambahkan "System.Web.Mvc" ke referensi aplikasi saya, meskipun aplikasi sudah melakukan referensi "System.Web".
sumber
Saya memiliki masalah yang sama, tetapi tidak ada yang berhasil bagi saya. Mereka menempatkan saya ke arah yang benar.
Misalnya ketika saya mengatur "Salin Lokal" ke "benar" untuk referensi System.Web.Mvc, secara otomatis mengaturnya kembali ke Salah.
Saya memiliki beberapa proyek yang bergantung pada referensi System.Web.Mvc di solusi saya, tetapi hanya satu yang menyebabkan masalah ini. Dalam VS 2012 referensi ini diberi label dengan segitiga perhatian kuning.
Temukan referensi ini => hapus itu => tambahkan kembali
Itu memperbaikinya bagi saya. Semoga ini membantu
sumber
Lihat dan periksa jalur referensi di csproj Anda.
Saya telah menghapus referensi untuk System.Web.Mvc (dan lainnya) dan membacanya ke jalur khusus.
C:\Project\OurWebReferences
Namun, setelah melakukan ini, jalur referensi di masih csproj tidak berubah. DULU
Diubah menjadi manual
Paths adalah contoh saja.
sumber
Bagi saya, solusinya adalah untuk memastikan semua proyek membangun untuk CPU yang sama - dalam kasus saya x86
sumber
Salin Lokal = Benar dipecahkan untuk salah satu proyek saya. Tetapi dalam proyek lain, saya mendapatkan kesalahan yang sama, mencoba mengatur Copy Local = true, tetapi tidak menyelesaikan masalah saya. Mengubah kerangka kerja Target dari 4.5.1 ke 4.5 di Project Properties Membantu dengan ini.
sumber
Saya melakukan sesuatu yang sangat bodoh (dan mungkin Anda juga melakukannya).
Saya mencoba menelepon
System.Web.Mvc.Html.Partial("<Partial Page>")
System.Web.Mvc.Html adalah namespace dan bukan kelas dan saya tidak membaca pesan kesalahan saya dengan baik, jadi saya menafsirkan kesalahan saya sebagai kelas
Html
tidak ada di namespace System.Web.Mvc dan itulah bagaimana saya mengakhiri di sini (bodoh saya tahu).Yang perlu saya lakukan adalah menambahkan pernyataan menggunakan
@using System.Web.Mvc.Html
ke halaman saya dan kemudian@Html.Partial
bekerja seperti yang diharapkan.sumber
jika salah satu di atas tidak menyelesaikan masalah Anda cukup atur properti System.Web.Mvc.dll untuk menyalin mendatang.
itu akan memecahkan
sumber
Saya memiliki masalah yang sama, tetapi dalam kasus saya berasal dari faktor lain. Saya menulis ini untuk membantu orang lain dengan masalah yang sama. Saya punya solusi dengan banyak proyek. dua di antaranya bekerja dengan System.Web.Mvc, Biasanya referensi kami menunjuk ke paket eksternal di mana kami mengontrol versi yang digunakan. Untuk beberapa alasan salah satu referensi proyek pergi ke GAC dan arahkan ke dll GAC (versi 4.0.0.1) dan program mendapat kesalahan. Untuk memperbaikinya:
Sederhana memeriksa apakah referensi ke System.Web.Mvc menunjuk ke dll yang sama di jalur direktori yang sama.
Saya harap itu membantu.
sumber
Saya telah menghapus System.Web.dll dari Bin frolder situs saya.
sumber
Saya punya masalah ini, mengatur salinan lokal dan mematikan dll tidak berfungsi. Proyek ini tidak menggunakan nuget jadi perbaikan di sekitar yang keluar dari pertanyaan juga.
Perbaikan untuk saya adalah menginstal MVC 3 (yang saya lakukan melalui installer platform web).
Saya menduga ini akan menjadi lebih banyak solusi bagi orang-orang karena kerangka kerja .net terus maju dan orang-orang tidak menginstal MVC yang lebih lama.
sumber
Kemungkinan mengatur DLL Anda ke CopyLocal / true atau perbaikan besar lainnya untuk ini akan memperbaiki masalah Anda, tetapi di sini ada kasus tepi lain yang menangkap saya selama 20 menit waktu yang terbuang.
Saat Anda menambahkan ruang nama Anda ke Views / Web.config Anda, pastikan semuanya ditulis dengan benar:
sumber
Ok jadi banyak orang tampaknya mengalami masalah ini. Masalah saya disebabkan oleh referensi yang memiliki jalur ke folder bin dari proyek lain, atau referensi dll dari folder sistem. Proyek ini berusia sekitar 6 tahun dan para pengembang sebelumnya telah memutuskan bahwa ini adalah cara mereka akan merujuk perpustakaan mereka.
Solusinya adalah melalui setiap referensi dan memeriksa jalur, kemudian menghapus referensi dan menambahkannya menggunakan NuGet. Untuk paket apa pun yang tidak ada di NuGet saya membuat folder lain di samping paket dan meletakkan dll di sana dalam tata letak yang sama seperti NuGet.
Saya juga harus membaca file-file konfigurasi dan memastikan versi paket yang benar digunakan. Proses yang panjang dan menyakitkan!
sumber
Saya memiliki proyek yang melakukan ini setiap kali saya membangun dengan tampilan terbuka. Segera setelah saya menutup tampilan, kesalahan hilang dan build berhasil. Sangat aneh.
sumber
Saya memiliki masalah yang sama, tidak ada solusi yang bekerja untuk saya, Akhirnya saya menghapus
System.Web.MVC
dan menambahkan lagi Kemudian semuanya kembali normal dan masalah saya terpecahkan.sumber