我有一个包含以下项目的地理集合: [州名] [市,州] [国家]
文本框可供用户开始输入,jQuery自动填充框填充显示可能的选项。
发布请求的URL结构将取决于从上面的集合中选择哪个,即 www.mysite.com/allstates/someterms(如果选择了国家/地区) www.mysite.com/city-state/someterms(如果选择了一个城市,州) www.mysite.com/ [state name] / someterms(如果选择了状态)
这些已在我的路线中定义。
我最初会在控制器上添加一些逻辑以确定适当的URL结构,但我想只是将其添加为geo表中的附加字段,因此它将是地理集合的属性。 / p>
这是我的jQuery函数,用于在文本框中的按键上触发时显示集合详细信息:
$(function () {
$("#txtGeoLocation").autocomplete(txtGeoLocation, {
source: function (request, response) {
$.ajax({
url: "/home/FindLocations", type: "POST",
dataType: "json",
selectFirst: true,
autoFill: true,
mustMatch: true,
data: { searchText: request.term, maxResults: 10 },
success: function (data) {
response($.map(data, function (item) {
return { label: item.GeoDisplay, value: item.GeoDisplay, id: item.GeoID }
}))
}
})
},
select: function (event, ui) {
alert(ui.item ? ("You picked '" + ui.item.label + "' with an ID of " + ui.item.id)
: "Nothing selected, input was " + this.value);
document.getElementById("hidLocation").value = ui.item.id;
}
});
});
我想要的是根据对象参数构建URL(似乎最简单)。我似乎只能读取“选中”的参数,而不是点击按钮。
我该如何做到这一点?
感谢。
答案 0 :(得分:0)
为了解决这个问题,我从Javascript中删除了select:
部分,并在发送到我的控制器的MVC路由中添加了所选的对象参数。