Jquery-oder Javascript-Redirect auf Controller/Action
Ich habe den folgenden code der funktioniert auf das erste mal um:
$("#CompDD").change(function () {
//var parts = (window.location.pathname.split("/"));
var ctrlName = '@ViewContext.RouteData.Values["Controller"].ToString()';
var actnName = '@ViewContext.RouteData.Values["Action"].ToString()';
var url = (ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
//delete ctrlName;
//delete actnName;
//window.location = ($(location).attr('href') + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
//window.location = (ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
//$(location).attr('href', url);
window.location.href = url;
//alert(ctrlName + "\n" + actnName);
});
Jedoch auf spätere änderungen der drop-down in Frage (#CompDD) es wird ein weiterer controller/action, um das Ende der Verknüpfung, ex. es fügt eine weitere "Gönner/Index" an das Ende der bestehenden "Gönner/Index", thenit fügt die searchsrting Variablen usw.
Bitte entschuldigen Sie die Kommentare und Sachen auf meinen code. Wie bekomme ich Jquery (oder javascript) umleiten, ohne das anfügen der name des Domänencontrollers und action-Namen über und über, oder was ist der beste Weg, dies zu tun?
EDIT: So eine einfache Lösung! Ich hatte, um die root-slash an den URL-string, Beispiel das funktionierte:
var url = ("/" + ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
Beachten Sie den Schrägstrich am Anfang der Zeichenfolge, die ich bauen....Huch!
- Sie konnte einfach den querystring-Teil mit
window.location.search = "?SearchString=something"
etc. - Warum nicht einfach die dropdownlist innerhalb eines Formulars mit
FormMethod.Get
ein und senden das Formular? - adeno, wie würden Sie die Fenster.Lage.Suche?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die
Url.Action
helper-Methode zum build path-to-action-Methoden.Angenommen, Sie möchten, navigieren Sie zu der
search
action-Methode inHome
controller.