โพสต์ฟิลด์แบบฟอร์มด้วย Ajax.ActionLink

ฉันมี View ในแอปพลิเคชัน MVC 3 ที่อนุญาตให้ผู้ใช้ป้อนที่อยู่สำหรับจัดส่งและสั่งซื้อ ฟิลด์แบบฟอร์มที่ฉันแสดงในมุมมองนั้นเหมือนกับฟิลด์โปรไฟล์ผู้ใช้ทุกประการ เลยอยากจะพิจารณาลิงค์ให้ผู้ใช้บันทึกข้อมูลที่ใส่ไว้ในโปรไฟล์ด้วย ช่องต่างๆ เช่น ชื่อ นามสกุล ที่อยู่ และอื่นๆ ฉันต้องการใช้ Ajax.ActionLink แต่ปัญหาคือฉันไม่รู้วิธีส่งฟิลด์แบบฟอร์มไปยัง Action ที่บันทึกข้อมูล สิ่งที่ฉันมีคือ:

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

ฉันจะโพสต์อะไรเป็นข้อมูลเส้นทาง


person user1137993    schedule 29.01.2012    source แหล่งที่มา


คำตอบ (1)


คุณควรใช้ Ajax.BeginForm ในกรณีนี้ วิธีนี้ค่าฟิลด์แบบฟอร์มจะถูกโพสต์ไปยังเซิร์ฟเวอร์โดยอัตโนมัติ

@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
ปัญหาคือแบบฟอร์มมีไว้เพื่อให้ผู้ใช้สั่งซื้อ จึงมีปุ่มส่งแบบฟอร์มอยู่แล้ว อย่างที่ฉันบอกไป ฉันจะพิจารณาลิงก์หรือปุ่มเพื่อโพสต์ช่องเดียวกัน (กล่องข้อความ) เพื่อบันทึกเป็นโปรไฟล์บัญชีด้วย - person user1137993; 29.01.2012
comment
@ user1137993 ในกรณีนี้ ฉันขอแนะนำให้คุณใช้ Html.ActionLink มาตรฐานที่คุณจะ AJAXify โดยใช้ jQuery อย่างสงบเสงี่ยม คุณจะสามารถควบคุมพารามิเตอร์ที่ส่งไปยังเซิร์ฟเวอร์ได้มากขึ้น วิธีการ $.ajax ช่วยให้คุณสามารถส่งข้อมูลใด ๆ ไปยังเซิร์ฟเวอร์ข้อมูลได้ - person Darin Dimitrov; 29.01.2012
comment
ขอบคุณดาริน. นี่ดูเหมือนจะเป็นวิธีเดียว - person user1137993; 30.01.2012