Ich versuche, eine grundlegende die automatische Vervollständigung über Jquery AJAX zu tun, mit Razor MVC 3 und Visual Studio 2012 (alle von denen ich noch nie zuvor verwendet hatte) Mein Code ist wie folgtRazor MVC 3 Ajax gibt 404
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!!');
},
});
}
Da ich gelernt, dass es nicht möglich ist, Razor-Syntax in einer JS-Datei zu verwenden, ich bin über einen versteckten Eingang den Wert aus der Sicht bekommen, wie:
<input type="hidden" id="autocompleteURL" value="@Url.Action("AutoCompleteCity", "Controllers/SearchController")" />
Controller:
public class SearchController: Controller
{
public ActionResult AutoCompleteCity(string guess)
{
//database stuff here
}
}
Ich weiß nicht, ob ich etwas anderes vermisse. Jede Hilfe wird sehr geschätzt. Vielen Dank!
Es muss @ Url.Action ("AutoCompleteCity", "Search") sein, aber keine versteckte Eingabe hinzufügen. Fügen Sie im Element mit 'id =" city "' ein Datenattribut mit 'data-url =" @ Url.Action ("AutoCompleteCity", "Search") "' hinzu und rufen Sie es mit 'var url = $ (this) ab. .data (url); ' –
Toller Vorschlag, danke! –