【发布时间】:2016-09-28 20:08:26
【问题描述】:
我正在尝试通过 jquery AJAX 进行基本的自动完成,使用 Razor MVC 3 和 Visual Studio 2012(我以前从未使用过所有这些)我的代码如下
JS:
$(document).ready(function () {
$("#city").keyup(function () {
var input = $(this).val();
getCities(input);
});
});
function getCities(input) {
var serviceURL = $("#autocompleteURL").val();
var url =
$.ajax({
type: "POST",
url: serviceURL,
data: {
'guess': input
},
success: function (data) {
alert('OK!!');
},
});
}
由于我了解到无法在 JS 文件中使用 Razor 语法,因此我通过隐藏输入从视图中获取值,例如:
<input type="hidden" id="autocompleteURL" value="@Url.Action("AutoCompleteCity", "Controllers/SearchController")" />
控制器:
public class SearchController: Controller
{
public ActionResult AutoCompleteCity(string guess)
{
//database stuff here
}
}
我不知道我是否缺少其他东西。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
必须是
@Url.Action("AutoCompleteCity", "Search"),但不要添加隐藏输入。在带有id="city"的元素中,使用data-url = "@Url.Action("AutoCompleteCity", "Search")"添加数据属性并使用var url = $(this).data(url);检索它
标签: asp.net ajax asp.net-mvc-3 razor autocomplete