Ajax ActionLink Post表演得像

时间:2014-02-28 21:20:41

标签: ajax asp.net-mvc-4 actionlink

我有一个ASP.NET MVC4应用程序。我在一个视图中有一个Ajax ActionLink,用于将一些信息发送回控制器动作。我需要Ajax ActionLink,因为我以前使用常规的Html.ActionLink进行GET,但我不希望参数在发送到服务器的查询字符串中可见。 Ajax ActionLink代码是:

Ajax.ActionLink("C/C", "CCSettings", new { loadHeaderID = DataBinder.Eval(c.DataItem, "LoadHeaderID") }, new AjaxOptions { HttpMethod = "Post" })

这最终会在页面中插入以下HTML:

<a data-ajax="true" data-ajax-method="Post" href="/LoadBoard/CCSettings?loadHeaderID=660">C/C</a>

我的控制器用HttpPost修饰,如下

[HttpPost]
    public ActionResult CCSettings(int loadHeaderID)
    {.....return View() }

单击Ajax ActionLink会出现404错误;即无法找到资源。 HttpPost似乎阻止访问控制器。但是,当我用[HttpGet]替换[HttpPost]时,访问控制器并返回View,但是参数显示在查询字符串中,这正是我想要避免的。

我确定我在这里做了一个简单的(和业余的)错误,但我似乎无法“弯曲”ActionLink来做我想要的,这是对控制器的POST以隐藏参数。我已尝试在Javascript中使用Ajax回发执行此操作但是,虽然这可以让我在使用HttpPost修饰时访问控制器,但我无法返回视图。

任何指示赞赏。

0 个答案:

没有答案