2012-01-29 50 views
4

我在我的MVC 3應用程序中有一個View,它允許用戶輸入送貨地址並下訂單。我在視圖中顯示的表單字段與用戶個人資料字段完全相同。所以我想考慮一個鏈接讓用戶將他們輸入的數據保存到他們的個人資料中。字段如名字,姓氏,地址等。 我想使用Ajax.ActionLink,但問題是我不知道如何將表單字段發送到保存數據的操作。我所擁有的是:發佈表單字段和Ajax.ActionLink

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

我會發布什麼作爲路由數據?

回答

7

在這種情況下,您應該使用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" /> 
} 
+0

問題是表單是爲用戶下訂單。所以已經有一個提交表單的按鈕。正如我所說,我會考慮一個鏈接或一個按鈕來發布相同的領域(文本框),以將它們保存爲帳戶配置文件。 – user1137993 2012-01-29 07:45:26

+1

@ user1137993,在這種情況下,我會建議你使用一個標準的Html.ActionLink,你會不顯眼地使用jQuery AJAXify。您將可以更好地控制發送到服務器的參數。 $ .ajax metod允許您將任何數據傳遞到數據服務器。 – 2012-01-29 15:10:32

+0

謝謝Darin。這似乎是唯一的方法。 – user1137993 2012-01-30 04:39:50