我有一个ActionLink链接
@Ajax.ActionLink("Delete it!", "Delete", new {id = getTheID}, new AjaxOptions { Confirm = "Really?", HttpMethod = "Delete", UpdateTargetId = "ddlRoles" })
我想在点击时插入路线值“id”。 我想要读取的值是一个下拉列表,所以我在javascript中得到了类似的东西来获取值:
$('#ddlRoles :selected').val()
我已经读过这篇文章了 set ActionLink routeValues dynamically 但是我不确定语法应该是什么样的,有人可以帮助我吗?
此致
答案 0 :(得分:3)
使用ajax选项的OnBegin重载。传入的参数之一是请求对象。
您可以从该下拉列表中提取值并修改网址。
function onBegin(xhr, request)
{
request.url = "@Url.Action("SomeAction", "SomeController")/" + $("ddl").val();
}
HTH
的Si
答案 1 :(得分:0)
我知道这是一个相当古老的帖子,但我只是在寻找类似的解决方案。基于Slicksim上面的回答和Adam Tuliper的评论,我使用data-属性实现了以下解决方案,以允许重复使用的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>