剃刀 MVC z w=10=sh w=11=sh 404
Razor MVC 3 Ajax returns 404
我正在尝试通过 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", "Controllers/SearchController")
试试这个:
Url.Action("AutoCompleteCity", "Search")
(另请注意,您可以使用浏览器中的调试工具来检查 AJAX 调用中使用的 URL。)
我正在尝试通过 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", "Controllers/SearchController")
试试这个:
Url.Action("AutoCompleteCity", "Search")
(另请注意,您可以使用浏览器中的调试工具来检查 AJAX 调用中使用的 URL。)