Posting bidang formulir dengan Ajax.ActionLink

Saya memiliki Tampilan di aplikasi MVC 3 saya yang memungkinkan pengguna memasukkan alamat pengiriman dan melakukan pemesanan. Bidang formulir yang saya tampilkan pada tampilan sama persis dengan bidang profil pengguna. Jadi saya ingin mempertimbangkan tautan bagi pengguna untuk menyimpan data yang mereka masukkan ke dalam profil mereka juga. Bidang seperti nama depan, nama belakang, alamat, dan sebagainya. Saya ingin menggunakan Ajax.ActionLink, tetapi masalahnya saya tidak tahu cara mengirim kolom formulir ke Action yang menyimpan data. Apa yang saya miliki adalah:

@Ajax.ActionLink("Save into profile", "SaveAccountProfile", new{ address=????}, new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, OnSuccess = "alert('Account profile was successfully updated.')" })

Apa yang akan saya posting sebagai data rute?


person user1137993    schedule 29.01.2012    source sumber


Jawaban (1)


Anda harus menggunakan Ajax.BeginForm dalam kasus ini. Dengan cara ini nilai bidang formulir akan secara otomatis diposting ke server.

@using (Ajax.BeginForm("SaveAccountProfile", new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, OnSuccess = "alert('Account profile was successfully updated.')" }))
{
    ... some input fields
    <input type="submit" value="Save into profile" />   
}
person Darin Dimitrov    schedule 29.01.2012
comment
Masalahnya adalah formulir tersebut dimaksudkan agar pengguna dapat melakukan pemesanan. Jadi sudah ada tombol submit formnya. Seperti yang saya katakan, saya akan mempertimbangkan tautan atau tombol untuk memposting bidang yang sama (kotak teks) untuk menyimpannya sebagai profil akun juga. - person user1137993; 29.01.2012
comment
@ user1137993, dalam hal ini saya akan merekomendasikan Anda menggunakan Html.ActionLink standar yang akan Anda AJAXify secara diam-diam menggunakan jQuery. Anda akan memiliki kontrol lebih besar atas parameter yang dikirim ke server. Metode $.ajax memungkinkan Anda meneruskan data apa pun ke server data. - person Darin Dimitrov; 29.01.2012
comment
Terima kasih Darin. Tampaknya ini adalah satu-satunya cara. - person user1137993; 30.01.2012