wake-up-neo.net

MVC Umleitung von Parametern mit jQuery zur Ansicht

Ich habe einige diesbezügliche Beiträge gesehen, aber es scheint nicht, dass es funktioniert. Bei der Weiterleitung bekomme ich einen 'Ressourcenfehler nicht gefunden'. 

Ich versuche, auf eine Detailseite umzuleiten. Es gibt eine ID im Element, die ich als NestId speichere, die ich schließlich an die View übergeben kann. Im Moment möchte ich nur auf die Detailseite weiterleiten, da kein Modell oder irgendetwas daran angehängt ist. Ich möchte nur, dass die NestId es dort schafft, damit ich damit mehr AJAX - Aufrufe machen kann. 

Hier ist meine jQuery: 

$('#results').on('click', '.item', function () {
            var NestId = $(this).data('id');
            var url = '@Url.Action("Details, Artists")'; 
            window.location.href = url; 
        })

Hier ist die Funktion auf dem Controller:

public ActionResult Details(string NestId)
    {
        ViewBag.NestId = NestId; 
        return View();
    }

Ich bin mir nicht sicher, ob ich das richtig mache, aber Hilfe wäre dankbar, ich habe eine Weile daran festgehalten. Vielen Dank!

10
mrshickadance

Wenn Ihr Click-Handler erfolgreich aufgerufen wird, sollte dies funktionieren:

$('#results').on('click', '.item', function () {
            var NestId = $(this).data('id');
            var url = "/Artists/Details?NestId=" + NestId; 
            window.location.href = url; 
        })

BEARBEITEN: In diesem speziellen Fall ist der Parameter der Aktionsmethode eine Zeichenfolge, die nullable ist. Wenn NestId == null, wird keine Ausnahme ausgelöst, da sich ModelBinder nicht darüber beschwert.

22

ich habe das immer so gemacht

in view

<script type="text/javascript">

//will replace the '_transactionIds_' and '_payeeId_' 
var _addInvoiceUrl = '@(Html.Raw( Url.Action("PayableInvoiceMainEditor", "Payables", new { warehouseTransactionIds ="_transactionIds_",payeeId = "_payeeId_", payeeType="Vendor" })))';

auf javascript datei

var url = _addInvoiceUrl.replace('_transactionIds_', warehouseTransactionIds).replace('_payeeId_', payeeId);
        window.location.href = url;

auf diese Weise kann ich die Parameterwerte bei Bedarf weitergeben.

durch Verwendung von @ Html.Raw erhält die URL keine amp; für Parameter

3
Sajjad Ali Khan

Das würde auch funktionieren, glaube ich:

$('#results').on('click', '.item', function () {
            var NestId = $(this).data('id');
            var url = '@Html.Raw(Url.Action("Artists", new { NestId = @NestId }))';
            window.location.href = url; 
        })
0
finstas