我有一个地理集合,其中包含类的物品: [州名] [城市],[状态] [国家]使用MVC3/Razor处理对象和路线?
的文本框可供用户开始打字,和一个jQuery自动完成框填充显示可能的选项。
的发布请求将依赖的URL结构在其上从集合中选择的上方,即 www.mysite.com/allstates/someterms(如果一个国家被选中) www.mysite.com/city-state/someterms(如果城市,州被选中) www.mysite.com/[state name]/someterms(如果选择一个州)
这些已经在我的路线中定义了。
我最初将在控制器上添加一些逻辑来确定合适的URL结构,但我想只是将其作为地理表中的其他字段添加,因此它将是地理集合的属性。
这里是我的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(似乎是最简单) 。我似乎只能读取“选定”的参数,而不能点击按钮。
我该如何做到这一点?
谢谢。