Ich muss eine URL für eine JavaScript-Suche, die ich mache rendern. Leider Url.Action
rendert nicht nur die Aktion, sondern die aktuelle ID. Dies tritt auf, wenn gerade auf der Seite die Aktion mit der ID verwendet wird.Url.Action nur Controller und Aktion, aber nicht ID
Zur Veranschaulichung Url.Action("List", "Org");
wird zuerst rendern Org/List
, von denen ich eine Organisation anfügen kann aufgeführt werden. Nachdem der Standort jedoch verschoben wurde, wird Org/List/12345
Url.Action("List", "Org");
wird rendern Org/List/12345
und Anhängen an das erstellt ein Problem, wo ich am Ende mit Org/List/12345/6789
.
Gibt es eine andere Methode als Url.Action
? Ich habe darüber nachgedacht, JavaScript zu verwenden, um nach der Nummer von /
zu suchen und einen Teil der Zeichenkette zu entfernen, aber das scheint ein bisschen hackish.
// appears in my Site.Master & utilizes the AutoComplete plugin for jQuery
$(document).ready(function() {
$("input#FindOrg").autocomplete('<%= Url.Action("Find", "Org") %>', {
minChars: 3,
maxItemsToShow: 25
}).result(function(evt, data, formatted) {
var url = '<%= Url.Action("List", "Org") %>/';
window.location.href = url + data;
});
});
'Url.Action (" Finden "," Org ", neu {id =" "})' hat den Trick gemacht. Sollte so offensichtlich gewesen sein! – ahsteele
Schön. Hatte es nicht selbst versucht, also war ich mir nicht sicher, aber es benutzt intern Routing, also dachte ich, es könnte jedes Verhalten außer Kraft setzen, das es veranlasste, die aktuelle ID zu erfassen. – womp