2010-09-28 72 views
0

我需要将查询字符串传回给响应 - 所以通过jQuery的手段,我可​​以用它做一些事情。ASP.NET MVC 2 - 如何将查询字符串传递回响应?

是这样的: 返回RedirectToAction( “登录”, “帐户”,新{ID = “?行动=更新”});

URL需要落得像:../Account/LogOn/?action=update

但上述代码产生这个代替:../Account/LogOn/%3faction%3dupdate

我不想编码...

帮助?

+0

任何特定的原因,你想要使用查询字符串,而不是把行动权利放在路径,例如, '/帐号/登录/ update'?你也可以定义一个帐户/登录/ {动作}或类似的路线,或可能使用一个区域=帐户,控制器=登录,行动=更新... – 2010-09-28 19:58:11

+0

@Hightechrider - 原因是因为客户端代码将要想要检索一些参数 – Mark 2010-09-28 20:09:48

+1

大多数人使用隐藏字段,javascript常量,cookie等将参数传递给它们的javascript,而不是查询用户可以轻松修改的字符串参数。 – 2010-09-28 22:16:20

回答

3

我认为,在这种情况下,你应该使用

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

不能使用关键字“动作”,因为它会通过MVC被消耗掉,所以我用“的sendto”取代它,而不是。

+0

该工作,谢谢 – Mark 2010-09-28 20:14:04

+1

关于动作关键字,也许@action =“更新”将工作? @似乎用于转义关键字,如@class。 – 2010-09-29 07:33:04

+0

在这种情况下,它不是一回事action是MVC用来处理路由信息的特殊关键字,而class是c#使用的特殊关键字 - 这就是为什么需要转义它。 – Buildstarted 2010-09-29 13:03:32

0

在您的控制器中,使用@符号命名参数,如Pawel所写。 所以

public ActionResult YourAction(string @action) will work 
public ActionResult YourAction(string action) will fail 
相关问题