2015-04-13 15 views
5

I, ist Code in AnsichtWie mehrere Parameter in Url.Action()

window.location.href = "@Url.Action("ABC", "XYZ", new { @A= ViewBag.A , @B = ViewBag.B })"; 

Und das ist meine Methode in Controller-XYZ

Hier mehrere Parameter von Url.Action übergeben wollen passieren
public ActionResult ABC(string A, string B) 
{ 
    // Some Code 
} 

Ich bekomme immer Werte nur in ersten Parameter und zweite ist immer Null. Entweder wenn ich aber B zuerst. Der zweite ist immer null. VIEW ist grundsätzlich unter JavaScript-Funktion. Hier ist die URL: http://localhost/CargoMainSite/XYZ/ABC?A=1&B=2 Bitte beachten Sie, gibt es einige zusätzliche Text zwischen Parameter eins und Parameter zwei, das ist "amp;" wenn ich es explizit entferne. Es funktioniert gut und bekommt richtige Werte.

+0

Dank @Lalit Kumar für die Bearbeitung verwenden. –

+2

Warum Post verwenden, wenn Sie beide Parameter in URL angeben? – gog

+0

Lässt es verlassen. Was ist, wenn es nicht POST ist? –

Antwort

16

Grund, warum Url.Action nicht funktioniert ist, dass die & char in URL codiert ist, so dass Sie @ Html.Raw wie unten

window.location.href = "@Html.Raw(@Url.Action("ABC", "XYZ", new { @A= ViewBag.A , @B = ViewBag.B }))"; 
+1

Dank @Abbas galiyakot es hat wirklich perfekt funktioniert. Aber ich habe eine Frage. Bitte lassen Sie mich wissen, wenn es Probleme mit @ Html.Raw() wie Cross Scripting geben wird? Spam usw.? –

+0

Außerdem akzeptiere ich Ihre Antwort. –

+0

Das Risiko besteht darin, wie es verwendet wird Wenn Sie Benutzer eingegebene Informationen anzeigen, ist es besser, @ Html.Encode() zu verwenden. Mit anderen Worten, wenn Sie Nicht-Benutzer-Daten zeigen, sind Sie sicher, mit @ Html.Raw() gehen –

Verwandte Themen