Bagaimana cara me-render tampilan sebagian menggunakan jquery?
Kami dapat merender Tampilan parsial seperti ini:
<% Html.RenderPartial("UserDetails"); %>
Bagaimana kita bisa melakukan hal yang sama menggunakan jquery?
Bagaimana cara me-render tampilan sebagian menggunakan jquery?
Kami dapat merender Tampilan parsial seperti ini:
<% Html.RenderPartial("UserDetails"); %>
Bagaimana kita bisa melakukan hal yang sama menggunakan jquery?
Jawaban:
Anda tidak dapat membuat tampilan parsial hanya menggunakan jQuery. Namun, Anda dapat memanggil metode (tindakan) yang akan merender tampilan sebagian untuk Anda dan menambahkannya ke halaman menggunakan jQuery / AJAX. Di bawah ini, kami memiliki penangan klik tombol yang memuat url untuk tindakan dari atribut data pada tombol dan melepaskan permintaan GET untuk mengganti DIV yang terkandung dalam tampilan parsial dengan konten yang diperbarui.
di mana pengontrol pengguna memiliki detail tindakan bernama:
Ini dengan asumsi bahwa tampilan parsial Anda adalah sebuah wadah dengan id
detailsDiv
sehingga Anda hanya mengganti semuanya dengan isi hasil panggilan.Tombol Tampilan Induk
User
adalah nama pengontrol dandetails
nama tindakan di@Url.Action()
. Tampilan parsial UserDetailssumber
Saya telah menggunakan beban ajax untuk melakukan ini:
sumber
UserDetails
apakah nama tindakan, bukan tampilan sebagian, bukan?@Url.Action("ActionName","ControllerName", new { area = "AreaName" } )
alih-alih melakukan Handcoding .@vanfosson batu dengan jawabannya.
Namun, saya akan menyarankan perbaikan dalam js dan kontrol kecil.
Saat kami menggunakan
@Url
helper untuk memanggil tindakan, kami akan menerima html yang diformat. Akan lebih baik untuk memperbarui konten (.html
) bukan elemen yang sebenarnya (.replaceWith
).Lebih lanjut tentang di: Apa perbedaan antara replaceWith () dan html () jQuery?
Ini sangat berguna di pohon, di mana konten dapat diubah beberapa kali.
Pada controller kita dapat menggunakan kembali aksi tergantung pada pemohon:
sumber
Hal lain yang dapat Anda coba (berdasarkan jawaban tvanfosson) adalah ini:
Dan kemudian di bagian skrip halaman Anda:
Ini merender @ Html.RenderAction Anda menggunakan ajax.
Dan untuk membuatnya semua penggemar sjmansy, Anda dapat menambahkan efek fade-in menggunakan css ini:
Man I love mvc :-)
sumber
<div class="renderaction fade-in" ...></div>
elemen.Anda harus membuat Tindakan pada Pengontrol Anda yang mengembalikan hasil tampilan sebagian atau kontrol "UserDetails". Kemudian gunakan saja Http Get atau Post dari jQuery untuk memanggil Action agar html yang ditampilkan ditampilkan.
sumber
Menggunakan panggilan Ajax standar untuk mencapai hasil yang sama
sumber
Saya melakukannya seperti ini.
Metode detail:
sumber
Jika Anda perlu referensi nilai yang dihasilkan secara dinamis, Anda juga dapat menambahkan parameter string kueri setelah @ URL. Aksi seperti itu:
sumber