Saya telah membuat situs web di ASP.NET dan telah membuat kelas dan memasukkannya ke dalam folder App_Code. Namun saya tidak dapat mengakses ini dari halaman saya yang lain. Apakah ada sesuatu yang perlu dikonfigurasi untuk memungkinkan ini? Saya telah membuatnya bekerja dalam proyek-proyek sebelumnya, tetapi tidak dalam yang ini, entah bagaimana.
namespace CLIck10.App_Code
{
public static class Glob
{
...
}
}
Jawaban:
Klik kanan pada
.cs
file diApp_Code
folder dan periksa propertinya.Pastikan "Bangun Tindakan" diatur ke "Kompilasi".
sumber
Letakkan ini di bagian atas file lain di mana Anda ingin mengakses kelas:
ATAU mengakses kelas dari file lain seperti ini:
Tidak yakin apakah itu masalah Anda atau tidak, tetapi jika Anda baru menggunakan C # maka ini mudah untuk dilakukan.
Pembaruan: Baru-baru ini saya menemukan bahwa jika saya menambahkan folder App_Code ke proyek, maka saya harus menutup / membuka kembali Visual Studio agar dapat mengenali folder "khusus" ini dengan benar.
sumber
Buka halaman dari mana Anda ingin mengakses kelas App_code, dan kemudian tambahkan namespace dari kelas app_code. Anda perlu memberikan
using
pernyataan, sebagai berikut:Setelah itu, Anda harus pergi ke properti kelas app_code dan mengatur 'Build Action' ke 'Compile'.
sumber
pastikan Anda menggunakan namespace yang sama dengan halaman Anda
sumber
Saya belum tahu mengapa ini terjadi, tapi saya memiliki kelas yang ada di
App_Code
folder saya yang memanggil metode satu sama lain, dan baik-baik saja dalam melakukan ini ketika saya membangun proyek .NET 4.5.2, tapi kemudian saya harus kembalikan ke 4.0 karena server target tidak ditingkatkan. Saat itulah saya menemukan masalah ini (setelah memperbaikilangversion
di web.config saya dari 6 hingga 5 ... cerita lain) ....Salah satu metode saya terus mengalami kesalahan seperti:
Semua kelas saya sudah diatur ke "Kompilasi" di properti mereka, seperti yang disarankan pada jawaban yang diterima di sini, dan masing-masing memiliki namespace yang sama, dan masing-masing memiliki
using MyNamespace;
di atas setiap kelas.Saya menemukan bahwa jika saya hanya memindahkan kelas yang menyinggung yang harus memanggil metode satu sama lain, folder standar bernama sesuatu selain "App_Code", mereka berhenti mengalami masalah konflik ini.
Catatan : Jika Anda membuat folder standar yang disebut "AppCode", pindahkan kelas Anda ke dalamnya, hapus folder "App_Code", lalu ganti nama "AppCode" menjadi "App_Code", masalah Anda akan kembali. Tidak masalah jika Anda menggunakan opsi "Folder Baru" atau "Tambahkan ASP .NET Folder" untuk membuat "App_Code" - sepertinya memasukkan nama.
Mungkin ini hanya masalah .NET 4.0 (dan mungkin sebelumnya) ... Saya baik-baik saja di 4.5.2 sebelum harus kembali!
sumber
Saya merasa lebih mudah untuk memindahkan file ke proyek Perpustakaan Kelas terpisah dan kemudian referensi proyek itu di proyek web dan menerapkan namespace di
using
bagian file. Untuk beberapa alasan solusi lain tidak bekerja untuk saya, tetapi pekerjaan ini berhasil.sumber
Dalam kasus saya, saya tidak bisa membuat proyek untuk dibangun dengan kelas yang ditentukan dalam folder App_Code.
Tidak dapat meniru skenario dengan tepat untuk berkomentar, tetapi harus menutup dan membuka kembali studio visual agar Intellisense dapat bekerja sama, setuju ...
Saya perhatikan bahwa ketika kelas di folder App_Code diatur ke 'Kompilasi' alih-alih 'Konten' (klik kanan) bahwa kesalahan berasal dari versi kedua kelas ... Lihat ke kiri-sebagian besar 3 dari 3 bidang antara panel kode dan tab. Yang 'lain' disebut sesuatu di sepanjang baris 10_App_Code atau serupa.
Untuk memperbaiki masalah ini, saya mengganti nama folder dari App_Code ke Code, secara eksplisit mengatur ruang nama pada kelas dan mengatur semua kelas menjadi 'Kompilasi'
sumber