2012-01-29 39 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