Übergeben dynamischer Javascript-Werte mit Url.action()

Lesezeit: 2 Minuten

Benutzer-Avatar
Kokila

Könnte jemand bitte sagen, wie man dynamische Werte mit Url.action() übergibt.

Etwas wie,

var firstname="abc";
var username = "abcd";
location.href="https://stackoverflow.com/questions/15112055/@Html.Raw(@Url.Action("Display", "Customer", new { uname = firstname ,name = username}))";

firstname, username wird nicht innerhalb der Methode Url.action() referenziert.

Wie übergebe ich diese dynamischen Werte mit Url.action()?

Benutzer-Avatar
Philipp Oriani

Das @Url.Action() Methode ist Prozess auf der server-sidealso kannst du a nicht bestehen client-side Wert dieser Funktion als Parameter. Sie können die konkatieren client-side Variablen mit der server-side von dieser Methode generierte URL, die eine Zeichenfolge in der Ausgabe ist. Versuchen Sie so etwas:

var firstname = "abc";
var username = "abcd";
location.href="https://stackoverflow.com/questions/15112055/@Url.Action("Display", "Customer")?uname=" + firstname + '&name=" + username;

Das @Url.Action("Display", "Customer") wird auf der verarbeitet server-side und der Rest der Zeichenfolge wird auf der verarbeitet client-sideVerketten des Ergebnisses der server-side Methode mit der client-side.

Diese Antwort ist möglicherweise nicht zu 100 % relevant für die Frage. Aber es geht auf das Problem ein. Ich habe diesen einfachen Weg gefunden, um diese Anforderung zu erfüllen. Code geht unten:

<a href="https://stackoverflow.com/questions/15112055/@Url.Action("Display", "Customer")?custId={{cust.Id}}"></a>

Im obigen Beispiel {{Kunden-ID}} ist eine AngularJS-Variable. Man kann sie jedoch durch eine JavaScript-Variable ersetzen.

Ich habe nicht versucht, mehrere Variablen mit dieser Methode zu übergeben, aber ich hoffe, dass sie bei Bedarf auch an die URL angehängt werden können.

Der einfachste Weg ist:

  onClick= 'location.href="https://stackoverflow.com/controller/action/"+paramterValue'

  • Brauchen Sie wirklich ein Onclick-Event? könnten Sie das gleiche mit dem Formular machen action Attribut…

    – Mladen B.

    1. Juni 2021 um 16:30 Uhr

Benutzer-Avatar
TEUFLISCH

In meinem Fall hat es super funktioniert, indem ich einfach Folgendes gemacht habe:

Der Controller:

[HttpPost]
public ActionResult DoSomething(int custNum)
{
    // Some magic code here...
}

Erstellen Sie das Formular ohne Aktion:

<form id="frmSomething" method="post">
    <div>
        <!-- Some magic html here... -->
    </div>
    <button id="btnSubmit" type="submit">Submit</button>
</form>

Legen Sie das Schaltflächen-Klickereignis fest, um das Absenden auszulösen, nachdem die Aktion zum Formular hinzugefügt wurde:

var frmSomething= $("#frmSomething");
var btnSubmit= $("#btnSubmit");
var custNum = 100;

btnSubmit.click(function()
{
    frmSomething.attr("action", "/Home/DoSomething?custNum=" + custNum);

    btnSubmit.submit();
});

Hoffe das hilft Vatos!

1018180cookie-checkÜbergeben dynamischer Javascript-Werte mit Url.action()

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy