2010-09-28 2 views
0

Мне нужно передать запрос на ответ - так что с помощью jQuery я могу что-то с этим сделать.ASP.NET MVC 2 - Как передать ответ на ответ?

что-то вроде этого: return RedirectToAction («LogOn», «Account», new {id = "? Action = update"});

URL должен закончить как: ../Account/LogOn/?action=update

но приведенный выше код производит это вместо: ../Account/LogOn/%3faction%3dupdate

I не хотят кодирования ...

Помощь?

+0

Любая конкретная причина, по которой вы хотите использовать строку запроса, вместо того, чтобы помещать действие прямо в путь, например. '/ Счета/LogOn/update'? Вы также можете определить маршрут, который является Account/LogOn/{action} или аналогичным, или, возможно, использовать Area = Account, controller = LogOn, Action = update ... –

+0

@Hightechrider - причина в том, что код на стороне клиента собирается хотите получить некоторые параметры – Mark

+1

Большинство людей используют скрытые поля, константы javascript, cookie, ... передавать параметры в свои javascript, а не в строковые параметры запроса, которые пользователь может легко изменить. –

ответ

3

Я думаю, в этом случае, вы должны использовать

return RedirectToAction("About", "Home", new { sendto = "update" }); 

Вы не можете использовать ключевое слово «действие», потому что это будет потребляться MVC, поэтому я заменил его «SendTo» вместо ,

+0

, который работает, спасибо – Mark

+1

Что касается ключевого слова action, возможно, @action = "update" будет работать? @, похоже, используется для удаления ключевых слов, например @class. –

+0

В данном случае это не одно и то же действие - это специальное ключевое слово, используемое MVC для обработки информации о маршрутизации, тогда как класс - это специальное ключевое слово, используемое C#, поэтому необходимость его избежать. – Buildstarted

0

В вашем контроллере назовите параметр знаком @, как пишет Павель. So

public ActionResult YourAction(string @action) will work 
public ActionResult YourAction(string action) will fail 
Смежные вопросы