众所周知,微软的MVC框架提供了一系列Helper以用于创建Ajax的网页。
但是,类似于Ajax.ActionLink()的方法创建的Ajax缺乏足够的灵活性,例如:
页面上有很多选项,我们需要根据用户的选择调用服务端的Action并传递用户的选择作为参数,Ajax.ActionLink()创建的静态Ajax链接很难做到如此的灵活性。因此,多数情况下,我们都是在直接编写<a href="#"/>标记,并为该链接编写$.ajax()的脚本,判断用户的选择以创建对应的ajax请求。
其实Ajax.ActionLink()有一个AjaxOptions的参数,其中有个OnBegin的属性,用于在ajax请求之前调用对应的脚本,可以满足我们的灵活性要求。
我们只需在onbegin的回调函数里根据用户的选择设定相应的传递参数即可。
onBeginCallback(jqXHR:jqXHR,settings:ajaxSettings){
settings.url+=$.param({需要传送的json对象});
}
如此,是不是比满屏幕的jquery脚本清爽多了?