Pertanyaan Bagaimana saya bisa membuat sebagian halaman di klik Tombol HTML?


Saya baru menggunakan MVC3.0 dan harus menggunakan jquery. Saya bertanya-tanya, ada yang bisa membantu bagaimana saya bisa membuat sebagian halaman tampilan pada mengklik Tombol HTML?

Saya tahu ini sangat mudah, tombolnya bisa disebut "email to", yang akan digunakan untuk partialView yang disebut "emailForm". Tapi saya butuh bantuan.


8
2017-09-08 17:57


asal


Jawaban:


Saya akan mengatakan respons @ smdrager adalah rute yang diinginkan, jika memungkinkan. Jika kamu perlu untuk mendapatkan html dari permintaan ajax, bagaimanapun, ada banyak cara melakukannya ... inilah contoh salah satunya :)

Di template Anda, Anda akan memiliki tombol atau tautan, dan wadah div untuk konten Anda:

<a href="javascript:void(0)" id="emailTo">email to</a>
<div id="emailToContent"></div>

Anda memerlukan javascript cepat untuk menghubungkan fungsionalitas sisi klien:

<script type="text/javascript">
  $("#emailTo").click(function(){
    $.get("<url to partial>", function(data){$("#emailToContent").html(data);}
  });
</script>

Kemudian, di pengontrol Anda, Anda memerlukan tindakan yang mengembalikan sebagian:

public ActionResult EmailTo()
{
  ...
  return PartialView("some partial")
}

Pastikan url diteruskan ke javascript $.get panggilan diarahkan ke tindakan yang mengembalikan sebagian Anda.

Ini adalah implementasi yang sangat mendasar, yang dapat dengan mudah menjadi lebih rumit jika situasi Anda menjadi lebih rumit (penanganan pengecualian, parameter yang dilewati, dll), tetapi tata letak umum bekerja untuk saya ketika saya memerlukan permintaan ajax sederhana untuk diaktifkan.


14
2017-09-08 18:15



Anda bisa merender halaman sebelumnya, tetapi di dalam div yang tersembunyi, atau Anda bisa menggunakan AJAX untuk memuatnya setelah klik.

Div Tersembunyi

<div style="display:none;" id="partial">
    @Html.Partial("SomePartial")
</div>

<button type="button" id="show-partial" />

dan skrip

$('#show-partial').click(function(){
    $('#partial').show();
});

Muat dengan Ajax

Untuk melakukan ini, Anda akan membuat ActionResult di controller yang membuat parsial.

<div id="partial"></div>

<button type="button" id="load-partial" />

dan skrip

$('#load-partial').click(function(){
    $('#partial').load('/TheController/TheAction/');
});

14
2017-09-08 18:06