在目前的asp.net mvc版本中我们可以使用Ajax.ActionLink,Ajax.RouteLink,Ajax.Form来实现ajax更新操作。
如果Ajax.ActionLink可以触发action那么我们肯定也可以在JS中实现调用action。
观察下列代码
<%= Ajax.ActionLink("ajax link","AjaxAction",new AjaxOptions(){InsertionMode=InsertionMode.InsertAfter}) %>
它最终生成的html代码为
<a href="/Users/AjaxAction" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.insertAfter });">ajax link</a>
那么我们是不是可以通过在js中调用Sys.Mvc.AsyncHyperlink.handleClick来实现触发action的目的呢。
答案是肯定的。
我在js函数中写了如下代码
Sys.Mvc.AsyncHyperlink.handleClick({ href: '/Users/ChangeWeight'}, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.InsertAfter });
最终触发了action "ChangeWeight".
但是目前我还不知道这种方法如何来传参给action。
还请高手指点。