Apakah ada semacam sihir yang perlu saya gunakan untuk mendapatkan ruang nama dalam pages/namespaces
elemen di konfigurasi web?
<pages>
<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.WebPages"/>
<add namespace="System.Web.Helpers"/>
<add namespace="MyCustomHelpers"/>
</namespaces>
</pages>
Di atas tidak mau bekerja. Saya tahu namespace baik-baik saja karena ketika saya meletakkan @using MyCustomHelpers
di bagian atas halaman itu berfungsi secara ajaib.
Ini agar saya bisa Html.SomeFunction()
bekerja tanpa harus meletakkan @using
di bagian atas semua halaman saya
asp.net-mvc-3
razor
MyNameIsJob
sumber
sumber
<system.web.webPages.razor>
config seharusnya sudah ada di THAT Web.Config!Jawaban:
Pembaruan : silakan lihat jawaban saya yang diperbarui yang berlaku untuk MVC 3 RC: Razor HtmlHelper Extensions (atau ruang nama lain untuk dilihat) Tidak Ditemukan
Ini telah berubah antara MVC 3 Pratinjau 1 dan MVC 3 Beta (dirilis hari ini). Di Pratinjau 1 Razor menggunakan bagian konfigurasi namespace WebForms. Namun dalam Beta ada bagian konfigurasi baru yang terpisah dari yang WebForms. Anda perlu menambahkan follwing ke file web.config Anda (atau mulai saja dengan proyek baru dari templat):
Perhatikan bahwa Anda mungkin perlu menutup dan membuka kembali file agar perubahan dapat diambil oleh editor.
Perhatikan bahwa ada perubahan lain pada apa yang diperlukan di web.config untuk membuat Razor bekerja di MVC3 Beta sehingga Anda sebaiknya melihat
~\View\Web.config
file yang dikirimkan dalam templat proyek Beta.sumber
pageBaseType="System.Web.Mvc.WebViewPage"
atribut tersebut juga diperlukan. Saya telah memperbarui jawaban Anda.Jika Anda meletakkan deklarasi namespace di
Web.config
folder "Tampilan" root dan / atau "Tampilan" area saat ini (tergantung di mana tampilan Anda) - itu harus bekerja seperti yang diharapkan.sumber
Saya menemukan http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx yang menjelaskan cara menambahkan ruang nama khusus ke semua halaman pisau cukur Anda.
Pada dasarnya kamu bisa membuat ini
dan letakkan kode berikut di AssemblyInfo.cs Anda
metode InitializeApplication akan dijalankan sebelum Application_Start di global.asax
sumber
Untuk apa nilainya, teknik lain adalah dengan hanya menempatkan kelas ekstensi pembantu Anda di namespace Sistem yang sudah disertakan oleh mesin tampilan secara default. Sebagai contoh:
Dengan cara ini, selama pustaka yang berisi kelas direferensikan, semuanya akan melihatnya. Karena Anda memperluas
System.Web.Mvc
kelas, tampaknya cukup masuk akal untuk meletakkan metode ekstensi di namespace yang sama.sumber
Coba tutup dan buka kembali tampilan setelah memastikan perubahan dilakukan pada web.config di root of view.
Menutup dan Membuka kembali memperbaiki masalah saya.
Lihat disini:
Masalah namespace ASP.NET MVC 4 dalam tampilan pisau cukur
sumber