剃刀 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。)