Saya mencoba membuat tindakan pengontrol yang akan mengembalikan JSON atau sebagian html tergantung pada parameter. Apa cara terbaik untuk mengembalikan hasilnya ke halaman MVC secara tidak sinkron?
ajax
asp.net-mvc
json
asp.net-ajax
NathanD
sumber
sumber
Saya pikir Anda harus mempertimbangkan AcceptTypes dari permintaan. Saya menggunakannya dalam proyek saya saat ini untuk mengembalikan jenis konten yang benar sebagai berikut.
Tindakan Anda pada pengontrol dapat mengujinya seperti pada objek permintaan
Anda kemudian dapat menerapkan aspx view untuk memenuhi sebagian kasus respons xhtml.
Kemudian di jQuery Anda bisa mengambilnya lewat parameter tipe sebagai json:
Semoga ini bisa membantu James
sumber
Cara lain yang bagus untuk menangani data JSON adalah menggunakan fungsi getJSON JQuery. Anda dapat menghubungi
Metode dari metode getJSON jquery hanya dengan ...
sumber
return Json(new {foo="bar", baz="Blech"});
!Saya menemukan beberapa masalah mengimplementasikan panggilan MVC ajax GET dengan JQuery yang membuat saya sakit kepala sehingga berbagi solusi di sini.
JsonRequestBehavior.AllowGet
; tanpa MVC ini mengembalikan kesalahan HTTP 500 (dengandataType: json
ditentukan pada klien).cache: false
ke panggilan $ .ajax, jika tidak, Anda pada akhirnya akan mendapatkan tanggapan HTTP 304 (alih-alih tanggapan HTTP 200) dan server tidak akan memproses permintaan Anda.Contoh JQuery:
Contoh kode MVC:
sumber
Untuk menjawab bagian lain dari pertanyaan, Anda dapat menghubungi:
ketika Anda ingin mengembalikan sebagian HTML. Anda hanya perlu menemukan beberapa cara untuk memutuskan apakah permintaan tersebut menginginkan JSON atau HTML, mungkin berdasarkan bagian / parameter URL.
sumber
Solusi alternatif dengan kerangka kerja pengkodean
Aksi kembalinya json
Pengendali
Halaman silet
Aksi pengembalian html
Pengendali
Halaman silet
sumber
Anda mungkin ingin melihat artikel yang sangat membantu ini yang mencakup ini dengan sangat baik!
Hanya berpikir itu mungkin membantu orang mencari solusi yang baik untuk masalah ini.
http://weblogs.asp.net/rashid/archive/2009/04/15/adaptive-rendering-in-asp-net-mvc.aspx
sumber
PartialViewResult dan JSONReuslt mewarisi dari kelas dasar ActionResult. jadi jika tipe pengembalian diputuskan secara dinamis mendeklarasikan output metode sebagai ActionResult.
sumber
Untuk orang-orang yang telah mengupgrade ke MVC 3 di sini adalah cara yang rapi Menggunakan MVC3 dan Json
sumber
sumber
Pendekatan fleksibel untuk menghasilkan output yang berbeda berdasarkan permintaan
The
Request.IsAjaxRequest()
Metode ini cukup sederhana: itu hanya memeriksa HTTP header untuk permintaan yang masuk untuk melihat apakah nilai X Diminta--Dengan headerXMLHttpRequest
, yang secara otomatis ditambahkan oleh sebagian besar browser dan kerangka AJAX.Metode ekstensi khusus untuk memeriksa apakah permintaan untuk json atau tidak sehingga kami dapat memanggilnya dari mana saja, seperti metode ekstensi Request.IsAjaxRequest ():
Sumber: https://www.safaribooksonline.com/library/view/programming-aspnet-mvc/9781449321932/ch06.html#_javascript_rendering
sumber