Bagaimana Anda memaksa Visual Studio untuk membuat ulang file .designer untuk file aspx / ascx?


395

Kadang-kadang ketika saya mengedit halaman atau mengontrol file .designer berhenti diperbarui dengan kontrol baru yang saya tempatkan pada halaman. Saya tidak yakin apa yang menyebabkan ini terjadi, tetapi saya bertanya-tanya apakah ada cara memaksa Visual Studio untuk membuat ulang file .designer. Saya menggunakan Visual Studio 2008

EDIT: Maaf saya seharusnya mencatat saya sudah mencoba:

  • Menutup & membuka kembali semua file & Visual Studio
  • Membuat perubahan ke kontrol runat = "server" pada halaman
  • Menghapus & menambahkan kembali arahan halaman

57
Sungguh konyol bahwa pada tahun 2012 Visual Studio masih tidak memiliki item menu konteks untuk membuat ulang file desainer dari file sumber? Ini mirip dengan tidak dapat membangun kembali DLL yang rusak. Saya tidak mengerti .. Terutama dengan kontrol sumber eksternal dan editor eksternal Anda meninggalkan Visual Studio lumpuh. Buang-buang uang, jika Anda bertanya kepada saya. Saya sebenarnya mencoba membuat ulang desainer file sumber daya. Saya berhasil mengeditnya dibuat ulang, tetapi itu melalui ketidakjelasan ... Augh !!! 1
bambams

3
@Bamccaig, jika saya punya satu sen untuk setiap "fitur" aneh seperti ini, saya akan lebih kaya daripada Bill Gates. Jika menurut Anda ini buruk, lihat di mana Outlook Express menyimpan data emailnya. Itu terkubur dalam di folder pengguna di bawah nama folder samar yang disembunyikan secara default.
ATL_DEV

13
Apakah ada solusi untuk VS 2015?
Anton

Lihat stackoverflow.com/questions/6508252/… terkait untuk upaya lainnya.
selamat tinggal

2
Bukan perbaikan permanen tetapi ini mengembalikan referensi kontrol dalam file .cs: 1. Buka file .aspx terkait; 2. Hapus satu ">" di akhir <%@ Pagegaris petunjuk; 3. Tunggu satu atau dua detik; 4. Pasang kembali ">". 5. Beralih ke file .cs dan Anda akan melihatnya sekarang bebas dari kesalahan referensi kontrol. Saya sudah melakukan ini sejak lama, bekerja setiap saat, di setiap versi VS.
ingredient_15939

Jawaban:


368

Jika Anda membuka file .aspx dan beralih antara tampilan desain dan tampilan html dan kembali itu akan meminta VS untuk memeriksa kontrol dan menambahkan apa pun yang hilang ke file desainer.

Dalam VS2013-15 ada perintah Convert to Web Application di bawah menu Project . Sebelum VS2013 opsi ini tersedia di menu konteks klik kanan untuk file as (c / p) x. Ketika ini selesai, Anda akan melihat bahwa Anda sekarang memiliki file * .Designer.cs tersedia dan kontrol Anda dalam HTML Desain akan tersedia untuk kontrol Anda.

PS: Ini tidak boleh dilakukan dalam mode debug, karena tidak semuanya "dikompilasi ulang" saat debugging.

Beberapa orang juga melaporkan keberhasilan dengan (membuat salinan cadangan file .designer.cs Anda dan kemudian) menghapus file .designer.cs. Buat kembali file kosong dengan nama yang sama.

Ada banyak komentar untuk jawaban ini yang menambahkan kiat tentang cara terbaik untuk membuat kembali file designer.cs.


1
Ini hanya bekerja untuk saya setelah menutup setiap instance (bahkan mereka yang memiliki solusi yang sangat berbeda) dari VS2008
Kevin

11
Saya menemukan bahwa mengubah dari mode debug ke mode rilis menggali trik untuk saya, Terima kasih
Chris

5
Hanya ingin mengatakan bahwa saya mengalami kesalahan yang sama dan mencoba semuanya di halaman ini, tanpa hasil. Ternyata saya kehilangan tag penutup ">" pada div yang memiliki runat = "server". Menjalankan VS-2008.
Ber53rker

10
Untuk membuat "Konversikan ke Aplikasi Web" muncul, pertama-tama Anda harus menghapus file Designer.cs DENGAN BENAR MENGKlik file aspx di Solution Explorer dan memilih delete. Ini bekerja untuk saya di VS 2010.
DeveloperDan

43
VS2013 memiliki Aplikasi Konversi ke Web di bawah menu Proyek. Tidak lagi di menu konteks.
Dennis Burton

95

Yah saya menemukan solusi yang berhasil, meskipun saya tidak terlalu menyukainya. Saya harus menghapus file .designer.cs kemudian membuat ulang file kosong dengan nama yang sama. Ketika saya kembali dan menyimpan file aspx lagi, file desainer dibuat ulang.

Cerdik!


3
Ini hanya bekerja untuk saya juga. Tidak ideal Tidak tahu mengapa file desginer asli berhenti memperbarui dengan benar.
Iain Holder

3
Ini tidak berhasil untuk saya. Sekarang saya punya file kosong dan semua kode di belakangnya tidak berfungsi !!!
Memulai ulang

7
Ini berhasil untuk saya. Saya memastikan untuk menghapus yang asli, membuat file designer.cs baru dengan nama yang sama, menutup file baru, memodifikasi file .as (p / c) x sedikit untuk memaksa save, maka semuanya baik-baik saja.
TJB

9
jika Anda memiliki kesalahan tampilan kompilasi, itu tidak akan kembali. Secara umum itulah mengapa berhenti berhenti di tempat pertama. Anda perlu mengaktifkan kompilasi tampilan untuk melihatnya, yang tidak lurus ke depan.
DevelopingChris

1
Saya juga harus memasukkan file kosong di proyek saya.
JP Hellemons

78

Saya menggunakan metode berikut ini yang berfungsi setiap saat:

  • Pilih semua kode di depan (marka html dll) di editor file aspx / ascx.
  • Memotong.
  • Menyimpan.
  • Tempel.
  • Menyimpan.

Kompilasi ulang.


1
Saya pikir hanya menghapus satu kontrol dan menambahkannya kembali memiliki efek yang sama.
chris

Saya melakukan ini dan itu berhasil untuk saya. Namun, saya harus membuat file kosong yang dipanggil <name>.aspx.designer.vbuntuk membuatnya berfungsi
Tahir Hassan

64

Baru-baru ini saya melihat bahwa saya mengalami masalah yang sama. Visual Studio 2010 menolak untuk memperbarui file desainer.

Ternyata, VS tidak memodifikasi file desainer untuk halaman yang menggunakan CodeFile (run off of pages), bukan CodeBehind (DLL). Ini benar, tidak peduli berapa kali Anda menutup VS, memuat ulang proyek, membuat ulang kontrol, atau memodifikasi file. Tidak ada yang akan mendorong VS untuk membuat ulang desainer. Seolah-olah itu tidak membuat file desainer untuk halaman CodeFile tetapi memang mengharuskan itu ada di sana.

Saya mengubahnya menjadi CodeBehind dan menyimpan halaman. File desainer segera diperbarui. Lalu saya baru saja mengubahnya kembali dan semuanya masih emas. Perilaku ini tampaknya baru dengan VS 2010 / .NET 4.0 sebagai VS 2008 secara default tidak menderita dari ini.

Ini bagian ini:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

Ubah CodeFile ke CodeBehind, simpan, lalu kembali.


Terlambat ke utas ini. Tidak ada jawaban yang dijelaskan di atas yang memaksa kontrol untuk dicantumkan di * .aspx.designer.cs. Saya berharap yang satu ini akan, tetapi masih tidak memaksa kontrol untuk dinyatakan dalam file * .aspx.designer.cs. Saya menggunakan VS 2010 Pro SP1. Saya mencoba agar ini berfungsi dengan salah satu file default yang dihasilkan oleh IDE di / Akun seperti ChangePassword.aspx. Terima kasih.
paparush

1
Milik saya diatur ke CodeFile, saya berubah menjadi CodeBehind, disimpan, kembali ke CodeFile, disimpan, semuanya Golden. Upaya perbaikan sebelumnya tidak melakukannya untuk saya. VS 2010 Pro
Dan

37

Ada kemungkinan lain: Anda mungkin memiliki kesalahan dalam file .aspx Anda yang tidak memungkinkan Visual Studio untuk membuat ulang desainer.

Jika Anda beralih ke Tampilan Desain, itu akan menunjukkan kontrol sebagai tidak dapat dirender. Memperbaiki kontrol (dalam kasus saya itu adalah kutipan tambahan di properti) dan kompilasi ulang harus memperbaharui desainer.


Saya memiliki masalah yang sama, kontrol pengguna memiliki kesalahan sehingga halaman yang menggunakan kontrol pengguna memiliki kesalahan yang tidak terkait karena kesalahan dalam kontrol pengguna.
Ronen Festinger

1
Penyebab yang sama. Saya memiliki atribut yang tidak didukung terlihat = "salah" ditambahkan ke tombol asp. Saya menghapusnya dan kode perancang dibuat kembali.
chingNotCHing

21

Sebagian besar solusi di sini tidak berfungsi jika Anda menjalankan Visual Studio 2013 dan mungkin 2012. Microsoft mungkin memperkenalkan beberapa optimasi untuk membuat IDE lebih cepat, akibatnya mereka telah mengurangi jumlah kasus yang memicu pembuat kode. Skenario berikut yang digunakan untuk bekerja tidak lagi dilakukan:

  1. Hapus file aspx atau ascx - Tidak lagi memeriksa untuk kasus ini
  2. Potong semua konten dan cetak ulang ke file aspx atau ascx - Tidak lagi berfungsi, tidak ada perubahan dalam referensi
  3. Konversi ke Aplikasi Web - Opsi tidak lagi tersedia
  4. Mengubah konten pada file aspx / ascx secara sewenang-wenang - Tidak lagi berfungsi (lihat 2).

Solusinya sangat sederhana, tetapi sedikit rumit. Untuk memicu pembuat kode, ubah sesuatu yang mengharuskan perancang.aspx.cs dibuat. Mengubah konten yang tidak memengaruhi kode, seperti gaya CSS atau menambahkan teks, tidak akan memicu pembuat kode. Anda harus mengubah kontrol yang dirujuk. Inilah cara melakukannya:

Dalam ascx atau aspx ubah ID kontrol

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

untuk

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

Buka ascx.cs atau aspx.cs dan pastikan Anda mengganti nama semua referensi menjadi "MyLink" menjadi "theLINK" juga. Simpan dan lakukan pembangunan dan Anda harus pergi dengan baik.


Poin yang sangat bagus tentang perubahan dalam versi yang lebih baru dari Visual Studio. Apa yang berhasil bagi saya daripada mengacaukan ID seperti di atas, adalah menghapus file desainer, kemudian menambahkan kontrol baru dan jinak seperti <asp: PlaceHolder ID = "Foo" runat = "server /> dan kemudian menyimpan untuk memicu regenerasi Kemudian bahkan jika Anda lupa untuk menghapusnya, tidak ada yang terpengaruh
Jordan Rieger

8
3. 'Konversi ke Aplikasi Web' tersedia di menu 'PROYEK' jika file yang sesuai dipilih.
WynandB

2
Hmm. Sayangnya, opsi ini tidak tersedia jika sudah menjadi aplikasi web.
ATL_DEV

Perubahan cepat adalah mengedit bagian namespace dari atribut Inherits =. Ini harus mengedit namespace dalam file .designer dan membuat ulang semua konten di dalamnya. Saya baru saja mencoba ini dengan VS2013.3.
David Russell

Hai, saya biasanya mencoba dengan cara yang Anda berikan tetapi masalahnya adalah pengguna lain tidak dapat menghasilkan file g.cs sementara hanya administrator yang dapat melakukannya. Kami menggunakan TFS, dengan menggunakan beberapa id pengguna pengembang di VS, kami dapat menghasilkan g.cs. Apa hak yang diperlukan untuk menghasilkan g.cs di server, TFS & SP?
nirav

14

satu-satunya cara yang saya tahu adalah menghapus file desainer, dan melakukan konversi ke aplikasi web. Namun ketika Anda melakukan ini, biasanya muncul dengan kesalahan, mengapa itu tidak otomatis-regen di tempat pertama, biasanya kontrol ref yang tidak dideklarasikan di bagian atas halaman.


Maaf itu tidak berhasil, itu bekerja di VS 2008 untuk saya sejak saya mulai menggunakannya. Apakah ada kesalahan sintaksis di halaman Anda? Anda harus mendapatkan kotak dialog yang memberi tahu Anda apa yang harus diperbaiki untuk menyelesaikannya.
DevelopingChris

Ini berhasil untuk saya. Kelas kode-belakang memiliki int Idproperti yang dikompilasi dengan baik di C # karena sensitif huruf. Tapi ID="ControlName"di halaman aspx coba lakukan Id = "ControlName". Convert to Web Appmengatakan sesuatu seperti ControlName cannot be converted to Int32.
Nelson Rothermel

9

Konversi ke Aplikasi Web tidak berfungsi untuk saya.

Menghapus designer.cs dan menempelkan designer.cs kosong juga tidak berhasil.

Tapi ya ini berhasil:

  1. Pilih semua (Default.aspx)
  2. Memotong
  3. Simpan Default.aspx
  4. Tempel
  5. Simpan Default.aspx

Selesai Perancang.cs baru dihasilkan. :)


Saya dapat mengkonfirmasi bahwa ini bekerja di VS2013, saya baru saja melakukannya dan itu menyelesaikan masalah saya.
ToastyMallows

Kamu. memiliki. dapatkan. untuk. menjadi. bercanda. saya. Ini bekerja untuk saya di VS2015, ketika konversi seperti pada jawaban yang dipilih tidak.
GraehamF

6

Saya sering menemukan bahwa copy / paste menyebabkan perilaku ini bagi saya. Sebagian besar kasus dapat diselesaikan dengan mengedit ID dari kontrol server (cukup tambahkan karakter, lalu hapus).

Juga ingat bahwa kontrol di dalam hal-hal seperti Pengulang tidak terlihat di file desainer.

Dan ya, ada beberapa kasus di mana Anda perlu melakukan keajaiban delete-the-file yang tercantum di atas - tetapi solusi perubahan nama akan berfungsi sebagian besar waktu.


2
Itulah jenis kesalahan yang saya miliki berkali-kali. Jika Anda menyalin HTML dari satu halaman ke halaman lain dan memiliki kontrol dengan runat = "server", kontrol akan diubah namanya untuk menghindari konflik. Namun, jika Anda menempel di tag "html comment" <! - whaterver ->, id kontrol tidak akan diubah, dan konflik apa pun akan menghentikan file desainer untuk dibuat ulang, karena ada dua kontrol dengan ID yang sama. Itu karena kontrol di dalam tag "komentar" html juga dibuat. ;)
tomasofen

5

Pengalaman saya adalah jika Anda ingin melakukan seperti di artikel ini , seperti yang disebutkan di atas.

File markup Anda (aspx / ascx) harus menyertakan atribut CodeBehind = "MyPage.aspx.cs" atau itu tidak akan berfungsi. Saya menulis blog di sini .


Menambahkan atribut ini kemudian disimpan; tidak ada. Kemudian dihapus Warisan, disimpan, dipulihkan dan voila file kode desainer diperbarui! Fitur menjengkelkan ini menangkap saya setiap kali :-(
GlennG

kedua tautan mati = (
Maslow

5

Saya telah menemukan cara untuk menyelesaikan masalah ini tanpa mengubah kode apa pun atau menjalankan perintah seperti "Konversikan ke Aplikasi Web" - dan juga sederhana!

Apa yang saya temukan adalah me-restart Visual Studio sering memecahkan masalah, tetapi kadang-kadang tidak. Dalam kasus tersebut, jika Anda menutup Visual Studio dan kemudian menghapus semua konten di direktori "obj" untuk proyek web sebelum Anda membukanya lagi, itu selalu bekerja untuk saya.

(ketika mulai lagi Anda hanya menambahkan spasi dan menghapusnya lagi dan kemudian tekan save untuk mendapatkan file desainer dengan benar)


Saya mengalami masalah ini dengan aplikasi lawas yang telah ditugaskan untuk mendukung saya. Saya ingin mengucapkan terima kasih karena telah menunjukkan ini. Saya tidak diizinkan mengonversi ke aplikasi web ", membuat solusi baru, atau melakukan apa pun selain memperbaiki bug. Perancang akan macet, terus-menerus, untuk saya. Tetapi ini telah membantu sejauh ini.
Jamie Taylor

4

(Berikut ini berasal dari pengalaman dengan VS2005.)

Jika Anda mengedit halaman ASPX saat debugging, maka codebehind tidak bisa diperbarui dengan kelas baru. Jadi, Anda harus berhenti men-debug, mengedit sepintas halaman ASPX (seperti menambahkan tombol atau sesuatu), lalu klik Tampilan Desain, lalu hapus tombol. Kemudian, file desainer Anda harus diperbarui.

Jika Anda memiliki masalah yang berbeda dengan VS2008, maka saya tidak dapat membantu.


Berlari dalam hal ini dengan VS.Net 2010 ... harus melakukan persis ini ... Terima kasih @EndangeredMassa untuk tipnya ... Saya dulu pernah membahas ini dalam VS.Net 2002/2003 hari juga ... Wish I tahu ini;)
Richard B

4

Saat Anda berada dalam tampilan desain, klik kanan pada layar dan tekan refresh.


3

Hal lain yang berhasil adalah -

  1. Hapus secara manual & lalu Buat file desainer dalam sistem file.
  2. Edit file Proyek .
  3. Tambahkan kode untuk memasukkan perancang
    misalnya:<Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
  4. Muat Ulang Proyek
  5. Buka sebagai (c / p) x file dalam mode desain / tampilan & simpan.
  6. Periksa file desainer. Kode akan ada di sana.

3

Jika Anda menggunakan VS2013 atau yang lebih baru, pastikan kode direferensikan dengan atribut "CodeBehind" bukan "CodeFile", kemudian lakukan langkah-langkah di bawah ini

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
  • buat halaman desainer kosong (atau kosongkan jika sudah ada "yourControl.ascx.designer.cs")
  • di ascx (atau aspx) salin semua kode, hapus itu, lalu simpan. ulang lagi, lalu simpan.
  • file desainer harus diisi sekarang.

2
  • Pilih-semua dalam file desainer dan hapus semua yang ada di file, biarkan kosong lalu simpan
  • Pilih semua dalam file ASPX / ASCX dan potong semuanya lalu tempelkan kembali
  • File desainer seharusnya membuat ulang kode

1
Ini berhasil untuk saya! Saya juga menyimpan file .aspx setelah memotong semuanya. Disisipkan kembali, disimpan, dan file desainer saya (sebelumnya kosong) telah terisi penuh.
DaveD

2

Berikut adalah pengalaman saya, Pilih folder situs web klik kanan di Solution Explorer, pilih Konversikan ke aplikasi Web untuk semua file aspx file desainer akan dihasilkan.

Sameer


2

Hanya untuk menambah daftar panjang jawaban di sini - Saya baru saja mengalami masalah ini di VS2010 (SP1) dengan file .aspx. Saya mencoba menambahkan dan menghapus kontrol ASP standar (yang telah bekerja di masa lalu) tetapi pada akhirnya, saya harus menghapus salah satu dari runat = baris server dari kontrol yang ada (dan menyimpan) untuk memaksa file desainer untuk regenerasi.


2

Saya telah mengalami masalah yang sama selama bertahun-tahun sekarang, bekerja di Visual Studio 2008. Dan saya sudah mencoba setiap "solusi" di StackOverflow dan puluhan blog, sama seperti saya yakin Anda semua sudah. Dan kadang-kadang mereka bekerja, dan kadang-kadang tidak, sama seperti saya yakin Anda semua pernah bertemu. Dan ternyata itu masih menjadi masalah di VS2010 dan VS2012.

Jadi akhirnya, beberapa bulan yang lalu, saya memutuskan cukup sudah, dan lebih dari beberapa minggu saya membangun alat yang disebut "Redesigner" yang menghasilkan file .designer. Ini open-source di bawah lisensi BSD , dengan kode sumber tersedia di SourceForge - bebas untuk digunakan, bebas untuk mencuri, bebas untuk melakukan apa pun yang Anda suka. Dan ia melakukan apa yang sering gagal dilakukan Visual Studio, yaitu menghasilkan file .designer dengan cepat dan andal.

Ini adalah alat baris perintah yang berdiri sendiri yang mem-parsing file .aspx dan .ascx, melakukan semua sihir refleksi yang diperlukan, dan memuntahkan file .designer yang benar. Itu semua parsing dan refleksi itu sendiri untuk menghindari mengandalkan kode yang ada, yang kita semua tahu terlalu rusak. Ini ditulis dalam C # terhadap. NET 3.5, tetapi itu membuat sulit untuk menghindari bahkan menggunakan System.Web untuk apa pun selain jenis deklarasi, dan tidak menggunakan atau mengandalkan Visual Studio sama sekali .

Redesigner dapat menghasilkan file .designer baru; dan ia menawarkan opsi --verbose sehingga ketika terjadi kesalahan, Anda mendapatkan pesan kesalahan yang jauh lebih baik daripada "Pengecualian jenis Sistem. Pengecualian dilemparkan." Dan ada opsi --verify yang dapat digunakan untuk memberi tahu Anda ketika file .designer Anda yang ada rusak - kontrol yang hilang, deklarasi properti yang buruk, tidak dapat dibaca oleh Visual Studio, atau sebaliknya hanya borked.

Kami telah menggunakannya di tempat kerja saya untuk membuat kami keluar dari kemacetan untuk bagian yang lebih baik dari bulan lalu sekarang, dan sementara Redesigner masih versi beta, itu sudah cukup jauh sehingga layak untuk dibagikan keberadaannya kepada publik. Saya segera bermaksud membuat plugin Visual Studio untuk itu sehingga Anda cukup klik kanan untuk memverifikasi atau membuat ulang file desainer seperti yang selalu Anda inginkan. Namun untuk sementara, penggunaan perintah-baris cukup mudah dan akan menghemat banyak sakit kepala.

Pokoknya, pergi unduh salinan Redesigner sekarang dan berhenti mencabut rambut Anda . Anda tidak akan selalu membutuhkannya, tetapi ketika Anda melakukannya, Anda akan senang memilikinya!

https://sourceforge.net/projects/redesigner/


sepertinya berlebihan untuk perbaikan sederhana
Chris McGrath

1
@ChrisMcGrath Mungkin berlebihan, tapi saya merasakan sakit yang mendorong alat ini. Saya mengagumi dedikasinya untuk meluangkan waktu untuk membangunnya :)
Jordan Rieger

2

TL; DR;
Edit Inheritsatribut @Pagearahan halaman ASPX dan tekan Save. File desainer Anda harus dibuat ulang.

Pastikan bahwa Inherits= <namespace>. <class_name> dan CodeBehind= <class_name> .aspx.cs


Saya mencoba melakukan ini pada proyek Sharepoint 2010, menggunakan VS 2010 dan TFS , dan tidak ada solusi di atas yang bekerja untuk saya. Terutama, opsi, "Konversikan ke Aplikasi Web" hilang dari menu klik kanan file .ASPX saat menggunakan TFS di VS 2010.

Jawaban ini akhirnya membantu . Kelas saya terlihat seperti ini:

namespace MyProjects.Finance.Pages
{
    public partial class FinanceSubmission : WebPartPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        // more code
    }
}

Dan @Pagearahan saya adalah (istirahat di sini untuk kejelasan):

<%@ Page Language="C#" AutoEventWireup="true" 
    CodeBehind="FinanceSubmission.aspx.cs"
    Inherits="MyProjects.Finance.Pages.FinanceSubmission"
    MasterPageFile="~masterurl/default.master" %>

Saya pertama kali mengubah Inheritske MyProjects.Finance.Pages , tekan Save, lalu ubah kembali ke MyProjects.Finance.Pages.FinanceSubmission dan tekan Save lagi. Dan wallah! Halaman desainer telah dibuat kembali!

Semoga ini bisa membantu seseorang menggunakan TFS!


2

Di dalam Visual Studio:

1) Hapus file aspx.designer.cs Anda

2) Klik kanan pada file aspx Anda dan pilih "Konversikan ke Aplikasi Web" Ini akan menambahkan aspx.designer.cs kembali dan terbaru.

Jika Anda mendapat pesan kesalahan:

"Pembuatan file desainer gagal: Metode atau operasi tidak diterapkan."

Coba tutup Visual Studio dan kemudian buka kembali proyek Anda dan lakukan langkah nomor dua lagi

Bagaimana cara menghasilkan aspx.designer.cs di studio visual?


2
"Konversikan ke Aplikasi Web" tidak ada pada menu konteks file aspx. Setidaknya, itu tidak di VS Professional 2015.
Chris Walsh

2
  1. Langkah 1 : Pilih semua kode aspx Anda, Potong [CTRL + X] kode itu dan Simpan.

  2. Langkah 2 : Sekali lagi tempel kode yang sama di halaman yang sama dan simpan lagi

Sekarang halaman .desinger Anda akan disegarkan dengan semua kontrol di halaman .aspx.


1

Hapus file designer.cs dan kemudian klik kanan pada file .aspx dan pilih "Convert To Web Application". Jika ada masalah dengan deklarasi kontrol Anda, seperti tag yang tidak terbentuk dengan baik, Anda akan mendapatkan pesan kesalahan dan Anda harus memperbaiki tag yang salah format sebelum studio visual dapat berhasil membuat ulang file desainer Anda.

Dalam kasus saya, pada titik ini, saya menemukan bahwa masalahnya adalah saya telah mendeklarasikan kontrol tombol yang tidak ada di dalam tag formulir dengan atribut runat = "server".


1

Ini adalah bug di IDE; Saya sudah melihatnya sejak VS 2003. Namun solusinya sederhana.

Simpan file Anda. Benar-benar keluar dari IDE (pastikan proses berhenti, mgr tugas.)

Buka kembali solusinya, kotor markupnya, simpan. Tetap.



1

Saya mempunyai masalah yang tidak dapat dihasilkan oleh kontrol baru saya di file desainer ketika dideklarasikan di file .ascx. Masalahnya adalah bahwa saya menyatakannya dalam kode di belakang juga. Jadi menghapus deklarasi dalam kode di belakang memecahkan masalah saya.


1

Jika Anda seperti saya dan Anda menambahkan file .ASPX lama ke proyek yang lebih baru. Anda mungkin akan melupakan beberapa kontrol yang digunakan pada halaman.

Jika demikian, hal pertama, jika ada banyak file yang Anda instal; Perbaiki satu per satu terlebih dahulu.

Saat Anda kompilasi, perbaiki kesalahan yang dihasilkan. Mereka mungkin akan memiliki kesalahan yang sama di semua file.

Selanjutnya, jika Anda memiliki file Desainer, hapus semua file desainer yang dimasukkan. Selanjutnya, pastikan tidak ada kesalahan lain saat Anda kompilasi, selain file desainer.

Terakhir, klik kanan proyek web Anda dan klik Convert to Web Application. Ini akan menyisipkan file desainer yang Anda butuhkan.

Ini adalah langkah terbaik mutlak untuk memperbaiki masalah.


1

Satu hal yang tidak ada yang disebutkan adalah mengunjungi halaman . Saya meminta file desainer saya berhenti dibuat ulang karena saya menyertakan kontrol pengguna yang tidak ada (karena berbagai alasan), dan tidak ada hal yang disarankan di sini yang berfungsi. Untuk alasan apa pun, saya tidak mendapatkan kesalahan dalam Visual Studio - selain yang mengeluh tentang fakta bahwa kontrol sisi klien saya tidak ada karena mereka tidak dibuat ulang, tentu saja.

Sebenarnya perlu mengunjungi halaman untuk mendapatkan ASP.Net untuk memberitahu saya kesalahannya.


1

Ini juga dapat terjadi jika Anda memperbarui namespace dan tidak memperbarui namespace dalam file desainer. Perbaiki: Perbarui namespace di file desainer juga.


1

Solusi yang berhasil bagi saya adalah:

Saya baru saja menyalin halaman dan menempelkannya di bagian yang sama, lalu mengganti nama halaman pertama (nama apa pun) dan mengganti nama halaman yang disalin sebagai halaman asli. Sekarang kontrol dapat diakses.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.