J'ai un helper Html qui définit une zone de texte utilisée pour alimenter un autocomplete jquery-ui.Url.Action ne peut pas trouver le contrôleur
@Html.TextBox("txtSearchArg")
Le javascript se trouve dans le dossier/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);
}
});
}
});
J'utilise la méthode @ Url.Action de Dans mon HomeController, j'ai une méthode Autocomplete.
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Autocomplete(string term)
{
... JSON gets created here
return Json(result3, JsonRequestBehavior.AllowGet);
}
Quand je passe un paramètre d'URL à ma méthode $ .ajax comme le code ci-dessus, la réponse est 404, introuvable. Dans le débogage, le js dynamique montre comme "url: '/ Home/Autocomplete'". Mais quand je passe comme si (copié forme les js dynamiques):
url: '/Home/Autocomplete'
Il trouve la méthode HomeController saisie semi-automatique très bien. Comment puis-je utiliser la méthode Url.Action pour trouver le HomeController et la méthode de saisie semi-automatique?
Comment utiliser la méthode Url.Action?
Avez-vous ajouté [httpPost]? –