2015-04-13 2 views
5

Я хочу передать несколько параметров из Url.Action, Вот код с точки зренияКак передать несколько параметров в Url.Action()

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

И это мой метод в контроллер XYZ

public ActionResult ABC(string A, string B) 
{ 
    // Some Code 
} 

Я всегда получаю значения только в первом параметре, а второй всегда равен нулю. Либо если я, но B первый. Второй всегда имеет значение null. VIEW в основном работает под функцией JavaScript. Вот URL: http://localhost/CargoMainSite/XYZ/ABC?A=1&B=2 Обратите внимание, что между Параметром один и Параметром два есть дополнительный текст, то есть «amp;» если я его явно удалю. Он отлично работает и получает правильные значения.

+0

Спасибо @Lalit Кумар для редактирования. –

+2

Зачем использовать пост, если вы показываете оба параметра в URL-адресе? – gog

+0

Позволяет оставить его. Что, если это не ПОСТ? –

ответ

16

Причина, почему Url.Action не работает в том, что & символ в URL кодируется, так что вы должны использовать @ Html.Raw ниже

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

Спасибо @Abbas galiyakot, это действительно сработало отлично. Но у меня есть вопрос. Пожалуйста, дайте мне знать, если возникнет проблема с использованием @ Html.Raw(), например, скриптового скрипта? спам и т. д.? –

+0

Помимо этого, я принимаю ваш ответ. –

+0

риск в том, как он используется Если вы показываете введенную пользователем информацию, лучше использовать @ Html.Encode(). Другими словами, если вы показываете данные, не являющиеся пользователями eneterd, вы можете безопасно перемещаться с помощью @ Html.Raw() –