如何将jquery自动完成项设置为razor ActionLink helper

如何将jquery自动完成项设置为razor ActionLink helper,jquery,asp.net-mvc,asp.net-mvc-3,razor,jquery-autocomplete,Jquery,Asp.net Mvc,Asp.net Mvc 3,Razor,Jquery Autocomplete,我在应用程序中使用jquery autocomplete,但我对如何处理点击自动完成项目不满意: $(function () { $("input#autocomplete").autocomplete({ source: function (request, response) { $.ajax({ url: '@Url.Action("Search", "Navigation")'

我在应用程序中使用jquery autocomplete,但我对如何处理点击自动完成项目不满意:

$(function () {
        $("input#autocomplete").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '@Url.Action("Search", "Navigation")', type: "POST", dataType: "json",
                    data: { searchTerm: request.term, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name,
                                value: item.CityId
                            }
                        }))
                    }
                })
            },
            select: function (event, ui) {                
                window.location.href = '@Url.Action("Index", "Home")' + '/' + ui.item.value;
            }
        });
    });
这是可行的,但有时不起作用。
有没有办法将
@Html.ActionLink…
添加为项目?

试试这个

function onItemSelect(item){
   var siteRootUrl = '@Url.Content("~/")';
   window.location.href = siteRootUrl + 'controller/action/' + item;
}

$(function () {
        $("input#autocomplete").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '@Url.Action("Search", "Navigation")', type: "POST", dataType: "json",
                    data: { searchTerm: request.term, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name,
                                value: item.CityId
                            }
                        }))
                    }
                })
            },
            select: function (event, ui) {                
                onItemSelect(ui.item.value);
            }
        });
 });
试试这个

function onItemSelect(item){
   var siteRootUrl = '@Url.Content("~/")';
   window.location.href = siteRootUrl + 'controller/action/' + item;
}

$(function () {
        $("input#autocomplete").autocomplete({
            source: function (request, response) {
                $.ajax({
                    url: '@Url.Action("Search", "Navigation")', type: "POST", dataType: "json",
                    data: { searchTerm: request.term, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {
                            return { label: item.Name,
                                value: item.CityId
                            }
                        }))
                    }
                })
            },
            select: function (event, ui) {                
                onItemSelect(ui.item.value);
            }
        });
 });

我不确定这是否仅仅是因为我使用了像这样的自动完成。例如,我在URL“”上,当我从自动完成URL中单击项目时,URL变为:“”。因为这不是一个有效的URL,所以会产生错误。我不确定这是否仅仅是因为我使用了这样的自动完成。例如,我在URL“”上,当我从自动完成URL中单击项目时,URL变为:“”。因为这不是有效的URL,所以会产生错误。