Ich möchte mit JavaScript / jQuery / Ajax von einer Seite auf eine andere Seite in ASP.NET MVC 3.0 umleiten. Beim Klicken auf die Schaltfläche habe ich JavaScript-Code wie unten geschrieben.
function foo(id)
{
$.post('/Branch/Details/' + id);
}
Mein Controller-Code lautet wie folgt:
public ViewResult Details(Guid id)
{
Branch branch = db.Branches.Single(b => b.Id == id);
return View(branch);
}
Wenn ich auf eine Schaltfläche klicke, wird die Aktion "Details" in BranchController aufgerufen, aber nicht zur Detailansicht zurückgekehrt.
Ich habe keine Fehler oder Ausnahmen erhalten. In Firebug wird der Status 200 OK angezeigt . Was ist in meinem Code falsch und wie kann ich zur Seite mit der Detailansicht umleiten?
quelle
url
in Ihrer Ansicht als globale Variable definieren :<script type="text/javascript">var url = '@Url.Action("Details", "Branch", new { id = "__id__" })';</script>
. Und dann können Sie es in Ihrer separaten Javascript-Datei verwenden.Dies kann erreicht werden, indem eine versteckte Variable in der Ansicht verwendet und diese Variable dann zum Posten aus dem JavaScript-Code verwendet wird.
Hier ist mein Code in der Ansicht
@Html.Hidden("RedirectTo", Url.Action("ActionName", "ControllerName"));
Jetzt können Sie dies in der JavaScript-Datei wie folgt verwenden:
var url = $("#RedirectTo").val(); location.href = url;
Es wirkte wie ein Zauber für mich. Ich hoffe es hilft dir auch.
quelle
Sie können verwenden:
window.location.href = '/Branch/Details/' + id;
Ihr Ajax-Code ist jedoch unvollständig, ohne Erfolg oder Fehlerfunktionen.
quelle
// in the HTML code I used some razor @Html.Hidden("RedirectTo", Url.Action("Action", "Controller")); // now down in the script I do this <script type="text/javascript"> var url = $("#RedirectTo").val(); $(document).ready(function () { $.ajax({ dataType: 'json', type: 'POST', url: '/Controller/Action', success: function (result) { if (result.UserFriendlyErrMsg === 'Some Message') { // display a prompt alert("Message: " + result.UserFriendlyErrMsg); // redirect us to the new page location.href = url; } $('#friendlyMsg').html(result.UserFriendlyErrMsg); } }); </script>
quelle
<script type="text/javascript"> function lnkLogout_Confirm() { var bResponse = confirm('Are you sure you want to exit?'); if (bResponse === true) { ////console.log("lnkLogout_Confirm clciked."); var url = '@Url.Action("Login", "Login")'; window.location.href = url; } return bResponse; } </script>
quelle
Überprüfen Sie den folgenden Code. Dies ist hilfreich für Sie:
<script type="text/javascript"> window.opener.location.href = '@Url.Action("Action", "EventstController")', window.close(); </script>
quelle