你总是可以写
onBegin="function() { clickedlink = $(this); }"然后,您可以在成功处理程序中访问clickedlink变量(请记住使用页面范围对其进行声明)。
编辑:
在对调用堆栈进行一些操作之后,您可以尝试如下操作:
<script type="text/javascript"> function start(xhr) { var stack = start.caller; // walk the stack do { stack = stack.caller; } while (stack.arguments != undefined && stack.arguments.length > 0 && (stack.arguments[0].tagName == undefined || stack.arguments[0].tagName != "A")) //stack now points to the entry point into unobtrusive.ajax if (stack.arguments != undefined) xhr.originalElement = $(stack.arguments[0]); //blech }function UpdateHrefText(result, status, xhr) { debugger; if(xhr.originalElement != undefined) xhr.originalElement.text(result.Message);}</script>@Ajax.Actionlink("Test", "Message", "Home", new AjaxOptions{ onBegin = "start", onSuccess = "UpdateHrefText"})虽然不确定我会在生产中相信这一点。我会做更多类似的事情:
<script type="text/javascript">var thelink;function start(xhr) { xhr.originalElement = thelink; }function UpdateHrefText(result, status, xhr) { debugger; if(xhr.originalElement != undefined) xhr.originalElement.text(result.Message);}</script>@Ajax.Actionlink("Test", "Message", "Home", null, new AjaxOptions{ onBegin = "start", onSuccess = "UpdateHrefText"}, new { onclick="thelink = $(this);"})


