1
我有一個Html助手,它定義了一個用於提供jquery-ui自動完成的文本框。Url.Action找不到控制器
@Html.TextBox("txtSearchArg")
javascript位於/ Scripts文件夾中。
$("#txtSearchArg").autocomplete({
source: function (request, response) {
var clinician = new Array();
$.ajax({
cache: false,
type: "POST",
url: '@(Url.Action("Autocomplete", "Home"))'
data: { "term": request.term },
success: function (data) {
alert("in success");
response(clinician);
},
error: function (response) {
alert(response.responseText);
},
failure: function (response) {
alert(response.responseText);
}
});
}
});
我使用@ Url.Action方法 在我的HomeController中,我有一個自動完成的方法。
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Autocomplete(string term)
{
... JSON gets created here
return Json(result3, JsonRequestBehavior.AllowGet);
}
當我傳遞一個url參數給我的$ .ajax方法,如上面的代碼,響應是404,沒有找到。在調試中,動態js顯示爲「url:'/ Home/Autocomplete'」。但是,當我通過它像這樣(複製形式動態JS):
url: '/Home/Autocomplete'
它發現的HomeController自動完成的方法就好了。
如何使用Url.Action方法,以便找到HomeController和Autocomplete方法?
你加[httpPost]? –