Pertanyaan Apakah Asp.net MVC benar-benar menghilangkan kondisi tampilan?


Salah satu masalah utama dengan bentuk web ASP.net adalah mekanisme tampilan data, yang mengambil banyak bandwidth karena ia membuat serialisasi semua input formulir dan mengirimkannya pada perintah posting.

Dalam buku yang saya baca disebutkan bahwa salah satu dari MVC utama utama atas webforms adalah bahwa MVC tidak mengandung kondisi tampilan. Kedengarannya cukup keren tetapi dari apa yang saya lihat, MVC juga mengirimkan semua input pada perintah posting (ini adalah satu-satunya cara dia dapat menggunakan mekanisme pengikatannya).

jadi apa bedanya? Anda dapat memanggilnya status tampilan, Anda dapat menyebutnya "mengikat", tetapi intinya baik MVC dan webforms serialize semua input dan mengirim mereka semua pada POST.

Apakah aku salah ? jika tidak, apa bedanya?


4
2018-05-19 21:24


asal


Jawaban:


Perbedaan besar. Kondisi tampilan bisa cukup besar. Ini mempertahankan nilai-nilai yang belum tentu terkandung dalam data formulir. Pikirkan GridViews dan Label dll. Mereka tidak berada di bidang input namun tetap bertahan melalui ViewState. Di MVC benar-benar tidak ada konsep ketekunan. Terserah Anda untuk mengembalikan data ke tampilan (meskipun mekanisme pengikatan membuat ini cukup mudah dilakukan)


4
2018-05-19 21:28



ViewState berbeda dari POST bentuk umum. Ketika Anda POST, Anda jelas harus menyertakan semua input, jika tidak, tidak ada cara bagi data untuk diproses oleh server.

ViewState menyimpan properti lain tentang kontrol, seperti warna, pengikatan data, nilai teks, dll. Nilai-nilai ini dikirim ke browser dan kembali lagi sehingga status setiap kontrol pada halaman dipertahankan, tetapi mereka bukan bagian dari " data "sedang diproses oleh server saat memposting.


2
2018-05-19 21:28



Di WebForms Anda berurusan dengan System.Web.UI.WebControls dan semua kontrol perlu menyimpan beberapa data di dalam kondisi tampilan

tetapi dalam MVC, Anda berurusan dengan protokol html dan http asli. Anda tidak perlu tampilan layar di sana.

saksikan video intro untuk ASP.NET MVC:

http://www.asp.net/mvc/videos/5-minute-introduction-to-aspnet-mvc


2
2018-05-21 09:45



Bagaimana sebenarnya Anda berniat untuk memproses segala jenis data formulir tanpa melewati nilai kembali ke server? Itu semacam argumen konyol. Ya, Posting tidak memberikan nilai formulir ke server, karena itulah satu-satunya cara server dapat memprosesnya.

Viewstate adalah kamus yang berisi data negara untuk setiap kontrol di halaman Anda, yang dilewatkan melalui data postingan. MVC tidak memiliki kondisi tampilan, sehingga hanya ada konten formulir data saat ini ketika sebuah posting terjadi. Tidak ada status halaman, hanya status sesi (yang disimpan di server).

Ini hal yang sama sekali berbeda.


1
2018-05-19 21:32



Saya tidak akan mendaur ulang apa yang dikatakan orang lain, tetapi saya akan menambahkan bahwa WebForms adalah kerangka kerja untuk menggunakan paradigma pseudo-stateful. Sama seperti aplikasi desktop yang memiliki status, WebForms adalah contoh yang baik untuk membawa sebagian dari status tersebut ke web tanpa kewarganegaraan yang diwariskan. Mekanisme utama yang digunakan untuk mencapai ini adalah kondisi tampilan. ViewState lebih dari sekadar konten serial kontrol saat ini, tetapi juga dapat digunakan untuk membuat serial dan mempertahankan status model. Inilah yang memberi WebForms statusnya.

MVC di sisi lain kembali ke tradisi dari kerangka stateless yang lebih klasik, dan dengan demikian tidak membutuhkan ViewState. Saya tidak akan setuju bahwa Model Binding sama dengan ViewState, karena Model Binding tidak menghormati keadaan sebelumnya (kecuali Anda mengembalikan status model secara manual dari cache sesi / aplikasi, dll.), Model dibuat dikelola dalam seumur hidup hanya permintaan. sedangkan dalam model WebForms, Anda dapat membuat model serialisasi untuk memberikan status aplikasi Anda.


1
2018-05-19 21:53



Menurut saya, MVC tidak menghilangkannya. Masih ada kebutuhan untuk menyimpan data dari posting lain dalam jenis halaman penyihir. Berikut ini adalah tautan cara melakukannya dengan cara tampilan negara! Tentu saja seseorang dapat membantah bahwa Anda dapat menyimpan data tersebut secara manual di bidang tersembunyi tetapi memerlukan banyak pekerjaan dan tidak mencegah dari gangguan data.


0
2018-03-20 08:41