.net 动态Ajax ActionLink路由值

.net 动态Ajax ActionLink路由值,.net,ajax,asp.net-mvc-3,actionlink,.net,Ajax,Asp.net Mvc 3,Actionlink,我有一个ActionLink链接 @Ajax.ActionLink("Delete it!", "Delete", new {id = getTheID}, new AjaxOptions { Confirm = "Really?", HttpMethod = "Delete", UpdateTargetId = "ddlRoles" }) 我想在单击时插入路由值“id”。 我想从中读取的值是一个下拉列表,因此我在javascript中得到了如下内容来获取该值: $('#ddlRoles :s

我有一个ActionLink链接

@Ajax.ActionLink("Delete it!", "Delete", new {id = getTheID}, new AjaxOptions { Confirm = "Really?", HttpMethod = "Delete", UpdateTargetId = "ddlRoles" })
我想在单击时插入路由值“id”。 我想从中读取的值是一个下拉列表,因此我在javascript中得到了如下内容来获取该值:

$('#ddlRoles :selected').val()
我已经看过这篇文章了 但是我不确定语法应该是什么样子,有人能帮我吗


使用ajax选项的OnBegin重载。传入的参数之一是请求对象

您可以从下拉列表中提取该值并修改Url

function onBegin(xhr, request)
{
     request.url = "@Url.Action("SomeAction", "SomeController")/" + $("ddl").val();
}


我知道这是一篇很老的帖子,但我只是在寻找类似的解决方案。基于上面Slicksim的回答和Adam Tuliper的评论,我使用data-attribute实现了下面的解决方案,以允许重复使用javascript函数。所以我想我会发帖帮助别人

@Ajax.ActionLink("Click Me", "ActionName", null, new AjaxOptions { HttpMethod = "GET", InsertionMode = InsertionMode.Replace, UpdateTargetId = "TargetID", OnBegin = "updateHref" }, new { data_dependentid = "DependentFieldName" })

<script>
        function updateHref(xhr, request) {
            var requester = $(this);
            var dependentid = $('#' + requester.attr('data-dependentid')).val();
            var requestParams = request.url.split('?');
            request.url = requestParams[0] + '/' + dependentid + '?' + requestParams[1];
        }
</script>
@Ajax.ActionLink(“单击我”、“ActionName”、null、新AjaxOptions{HttpMethod=“GET”、InsertionMode=InsertionMode.Replace、UpdateTargetId=“TargetID”、OnBegin=“updateRef”}、新的{data\u dependentid=“DependentFieldName”})
函数updateHref(xhr,请求){
var请求程序=$(此);
var dependentid=$(“#”+requester.attr('data-dependentid')).val();
var requestParams=request.url.split(“?”);
request.url=requestParams[0]+'/'+dependentid+'?'+requestParams[1];
}

在这里要小心。您的url可能会添加各种参数,例如X-request-With,上面的代码会消除这些参数(它添加到url查询部分的缓存破坏值也将在这里消除)。我要么对它进行模式替换,要么附加值:ex request.url+='&search='+$(“#search”).val();