Saya baru saja membuat proyek ASP.NET MVC 4 dan menggunakan Visual Studio 2012 RC untuk membuat Controller dan Razor Views Index
dan Create
Actions.
Ketika saya datang untuk menjalankan aplikasi, dan melihat- Create
lihat, kesalahan berikut ditunjukkan:
Pesan Kesalahan Kompiler: CS0103: Nama 'Script' tidak ada dalam konteks saat ini
Masalahnya adalah kode berikut yang ditambahkan secara otomatis ke bagian bawah tampilan:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Mengapa Naskah tidak ada?
Saya melihat kelas Halaman Web dasar di Assembly System.Web.Mvc.dll, v4.0.0.0
Saya dapat melihat properti pembantu berikut ini tersedia:
- Ajax
- Html
- Url
Tapi tidak ada yang bernama Script.
Ada ide?
EDIT:
File Web.config saya terlihat seperti ini (tidak tersentuh dari yang dibuat Visual Studio):
<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:
Orang-orang menulis blog tentang menggunakan @Scripts
helper:
Namun setelah menginstal Visual Studio 2012 RC ke instalasi Windows 8 yang baru, saya masih tidak dapat menggunakan @Scripts
meskipun Visual Studio menambahkannya ke tampilan yang dihasilkan!
Solusi disajikan di bawah ini.
Saya tidak yakin bagaimana menutup ini, karena pada akhirnya pembaruan tampaknya menyelesaikan masalah. Saya mengecek ulang saya telah melakukan instalasi bersih, menggunakan proyek baru. Tetapi proyek gagal yang sama yang saya buat sekarang berfungsi dengan baik setelah berbagai pembaruan dan tidak ada intervensi manual yang jelas. Terima kasih atas semua pemikirannya tetapi pasti ada masalah pada saat itu;)
sumber
<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>
Jawaban:
Kuncinya di sini adalah menambahkan
ke KEDUA file web.config. Skenario saya adalah bahwa saya mempunyai referensi System.Web.Optimization di kedua proyek dan web.config utama / root tetapi @ Script masih tidak berfungsi dengan baik. Anda perlu menambahkan referensi namespace ke file Views web.config untuk membuatnya berfungsi.
MEMPERBARUI:
Sejak rilis MVC 4 System.Web.Optimisasi sekarang sudah usang. Jika Anda memulai dengan solusi kosong, Anda harus menginstal paket nuget berikut:
Anda masih perlu merujuk System.Web.Optimasi dalam file web.config Anda. Untuk informasi lebih lanjut, lihat topik ini:
Cara menambahkan referensi ke System.Web.Optimisasi untuk aplikasi MVC-3-dikonversi-ke-4
Seperti yang banyak ditunjukkan, restart VS dapat diperlukan setelah langkah-langkah di atas untuk membuat pekerjaan ini.
sumber
Install-Package Microsoft.AspNet.Web.Optimization
dari template ASP.NET MVC4 kosong karena tidak disertakan secara default.@Styles
dan@Scripts
2 pembantu baru disediakan olehSystem.Web.Optimization
perpustakaan. Seperti namanya, mereka membundel dan memperkecil CSS atau file JavaScript atau sumber daya masing-masing.Coba sertakan namespace
System.Web.Optimization
baik dengan@using
arahan atau melaluiweb.config
http://ofps.oreilly.com/titles/9781449320317/ch_ClientOptimization.html#BundlingAndMinificationMEMPERBARUI
Microsoft telah memindahkan bundling / minifikasi ke paket terpisah yang disebut
Microsoft.AspNet.Web.Optimization
. Anda dapat mengunduh perakitan dari nuget .Posting ini akan bermanfaat bagi Anda.
sumber
System.Web.Optimization
Namespace TIDAK usang,System.Web.Optimization.dll
itu.Ada satu langkah kecil yang hilang dari atas, yang saya temukan di pos lain. Setelah menambahkan
ke
~/Views/web.config
ruang nama Anda , tutup dan buka kembali Visual Studio. Inilah yang harus saya lakukan untuk membuatnya bekerja.sumber
Saya menggunakan area, dan baru saja menghadapi masalah ini, saya hanya menyalin ruang nama dari root web.config ke area web. config dan sekarang berfungsi !!
sumber
Saya memiliki masalah yang sama dan saya menggunakan WinMerge untuk membantu saya melacak ini. Tetapi ketika saya meneliti lebih lanjut, saya menemukan bahwa Rick memiliki posting blog yang sempurna untuk itu.
Ringkasan:
<add namespace="System.Web.Optimization"/>
ke kedua file web.configInstall-Package -IncludePrerelease Microsoft.AspNet.Web.Optimization
sumber
Saya memiliki masalah yang sama:
Versi System.Web.Optimization yang saya gunakan sudah usang untuk MVC4 RC.
Saya memperbarui paket saya menggunakan manajer paket di VS 2010.
Di blog MSDN ini , Tn. Andy berbicara tentang cara memperbarui proyek MVC 4 Beta Anda ke MVC 4 RC. Memperbarui paket-paket saya membuat Skrip (terutama yang optimasi web) untuk saya selesaikan:
Untuk menginstal paket System.Web.Optimization terbaru, gunakan Package Manager Console (Tools -> Library Package Manager -> Package Manager Console) dan jalankan perintah di bawah ini:
Gunakan file System.Web.Optimation termasuk dalam paket dalam referensi Anda.
Untuk memperbarui paket lain: Alat menu -> Manajer Paket Perpustakaan -> Kelola Paket NuGet untuk Solusi.
sumber
Buat aplikasi internet MVC 4 RC baru dan jalankan. Arahkan ke Login yang menggunakan kode yang sama
Apa yang memungkinkan Login.cshtml berfungsi adalah file Views \ Web.config (bukan versi root aplikasi)
Mengapa tampilan Buat Anda tidak berfungsi dan Masuk?
sumber
Impor System.Web.Optimasi di atas tampilan pisau cukur Anda sebagai berikut:
sumber
Saya mengalami masalah ini, namun saat menjalankan perintah:
Saya menerima pesan rahasia (harus menyukai permainan kata-kata yang bagus sebelum secangkir kopi pertama):
Saya menjalankan ini pada Windows XP SP3 (bukan karena pilihan) dan apa yang saya temukan adalah bahwa saya harus mengikuti instruksi yang diposting oleh pengguna artsnob di Forum ASP.NET
Setelah saya menjalankan ini, saya kemudian dapat menjalankan baris perintah untuk memperbarui Web.Optimasi.
Semoga ini menyelamatkan seseorang menggali.
sumber
Cukup tulis
sumber
Saya memutakhirkan dari Beta ke RC dan menghadapi 'Skrip' tidak ada masalah. Berselancar di seluruh web dan solusi terakhir adalah apa yang dikatakan N40JPJ plus workaroudn lainnya:
Salin yang berikut di View \ Web.config:
dan berikut ini di dalam View \ Shared_Layout.cshtml
Semoga ini bisa membantu.
sumber
if (IsSectionDefined())
kecuali Anda memberikanelse
klausa. Fakta yang Anda katakanrequired: false
sudah memungkinkan bagian itu tidak didefinisikan, dan dalam hal itu bagian tersebut akan dihilangkan. Jadi ini bukan kode tambahan yang tidak perlu.Tampaknya Anda telah membuat jenis proyek 'Kosong' tanpa folder 'Skrip'. Saran saya - buat jenis proyek 'Dasar' dengan folder 'Skrip' lengkap.
Sehubungan dengan semua pengembang.
sumber
cukup hapus / sembunyikan kode dari buat & Edit tampilan pisau cukur controller Anda.
sumber
semoga berhasil...
sumber
Satu lagi untuk pot - menghabiskan waktu mencoba menyelesaikan masalah yang sama - meskipun telah didefinisikan di web.config untuk root dan root dari Views. Ternyata saya keliru menambahkannya ke
<system.web><pages><namespaces>
, dan tidak<system.web**.webPages.razor**><pages><namespaces>
.Sangat mudah untuk dilewatkan!
sumber
Ketika saya masuk pada halaman yang memiliki kode ini:
Kesalahan ini terjadi: Kesalahan. Kesalahan terjadi saat memproses permintaan Anda.
Dan pengecualian ini dicatat di log saya:
Saya telah mencoba semua tip pada halaman ini dan tidak ada satupun yang bisa saya selesaikan. Jadi saya telah melihat pada folder Paket saya dan memperhatikan bahwa saya memiliki dua versi untuk System.Web.Optmization.dll:
Proyek saya merujuk ke versi beta yang lebih lama. Saya hanya mengubah referensi ke versi yang lebih baru (69KB) dan semuanya berjalan dengan baik.
Saya pikir itu mungkin membantu seseorang.
sumber
Itu memiliki solusi yang jelas. Saya punya masalah yang sama nanti. Tidak terkait dengan Referensi Majelis atau .... Ini akan terjadi dalam panggilan hierarki tampilan MVC Parsial, ketika Anda memiliki struktur halaman yang rumit. Jadi memanggil / merender setiap bagian secara terpisah pada setiap halaman (mungkin halaman master atau sebagian) akan menyebabkan tidak melihat bagian-bagian halaman yang diperlukan seperti kode di bawah:
Itu hanya memaksa halaman untuk menemukan dan merender bagian terkait dan jika terjadi kegagalan menunjukkan pesan kesalahan seperti Anda.
Jadi saya sarankan Anda untuk melacak halaman Anda (seperti pelacakan program) dari master ke semua parsial untuk Mendeteksi Ketergantungan . Mungkin ini pekerjaan yang mengerikan, tetapi tidak ada pilihan lain yang tersedia di sini.
Bukannya menurut pengalaman saya, beberapa situasi bersyarat dalam pemrograman menyebabkan tidak menunjukkan kepada Anda kesalahan yang tepat menyebabkan masalah.
sumber
Saya mengalami masalah ini setelah saya menambahkan Area ke proyek yang tidak memilikinya. Untuk menghilangkannya cukup salin folder web.config withing Views ke folder Views area dan mulai berfungsi.
sumber
Saya mengatasi masalah ini di MvcMusicStore dengan menambahkan bagian kode ini di _Layout.cshtml
dan hapus kode ini dari Edit.cshtml
Jalankan program insya Allah akan bekerja dengan Anda.
sumber
Bagi saya ini menyelesaikan masalah, dalam konsol manajer paket NuGet menulis berikut:
sumber
Ketika saya mulai menggunakan MVC4 baru-baru ini saya menghadapi masalah di atas sambil membuat proyek dengan template kosong. Langkah-langkah untuk memperbaiki masalah ini.
TOOLS
->Library Package Manager
->Packager Manager Console
Tempel perintah di bawah ini dan tekan enterInstall-Package Microsoft.AspNet.Web.Optimization
Catatan: tunggu instalasi berhasil.<namespace="System.Web.Optimization" />
Paket yang disebutkan pada langkah 1 akan menambahkan beberapa pustaka sistem ke dalam referensi solusi seperti System.Web.Optimisasi bukan referensi default untuk template kosong di MVC4.
Saya harap ini membantu. Terima kasih
sumber
Saya memiliki kesalahan yang sangat mirip ketika memutakhirkan proyek dari MVC3 ke MVC4.
Dalam kasus saya, saya sudah ketinggalan zaman nomor versi di beberapa Web.Configs saya.
Ex:
Pastikan untuk meninjau Web.Configs di masing-masing direktori Views Anda.
Anda dapat membaca lebih lanjut tentang Meningkatkan Proyek ASP.NET MVC 3 ke ASP.NET MVC 4 .
sumber
Jika Anda menambahkan ke web.config Anda dan masih menampilkan pesan, maka Anda harus menutup proyek Anda dan membukanya kembali, sekarang ia akan ada dan @ Styles.Render ("") dan @ Scripts.Render () akan berfungsi dengan baik.
sumber
Coba ini:
sumber