Html.ActionLink()与HttpPost装饰动作

时间:2013-03-21 09:50:59

标签: asp.net-mvc

如何拨打下面的第二个操作Index

public ActionResult Index()
{
}

[HttpPost]
public ActionResult Index(FormCollection collection, string nextButton)
{
}
来自ActionLink

?我正在尝试下面的代码但没有成功:

@Html.ActionLink("Buy Now", "Index", "Store", new {edition = "std", nextButton = ""}, new Dictionary<string, object> {{ "class", "button medium light" }})

感谢。

1 个答案:

答案 0 :(得分:1)

默认情况下,ActionLink会生成锚链接,因此在单击时会对端点执行GET请求。

您可以使用jquery使用ajax异步执行操作端点的帖子。

$.ajax({ 
    url: 'http://endpoint.com', 
    type: 'POST', 
    data: $('#form').serialize() //Add some post data however you want. 
});

或者您可以使用表单发布端点。如果使用表单,还应使用[ValidateAntiForgeryToken]装饰端点。如果使用jquery发布方式,您仍然可以将AntiForgery隐藏字段添加为帖子上的标题,并通过检查自定义过滤器中的标题进行验证。

@using Html.BeginForm() {
    @Html.AntiForgeryToken()
    //Add some inputs to represent your model
    <button type="submit">Save</button>
}