Asp mvc重定向而不影响url

时间:2012-09-06 18:08:08

标签: asp.net-mvc url action query-string url-redirection

我有一个相当古老的登录系统,这是登录操作的一部分:

// login action
return RedirectToAction("Action", new {
  id = aVal,
  name = aName,
  // other params
});

它将用户重定向到Action操作,我注意到name和其他参数最终成为最终网址方案的一部分。我需要将所有这些值传递给Action

[HttpGet]
public ActionResult Action(int id, string name, ...) {
  1. 是否可以将它们传递给Action并使用这样的网址:/Controller/Action/123
  2. 我需要将Action方法限制为仅通过登录操作的人,长网址+查询字符串使其几乎不可能通过,但是还有另外一种更专业的方法。
  3. 感谢和欢迎SO和SE社区。

1 个答案:

答案 0 :(得分:1)

为了获得Restful样式的url,你需要设置一个合适的路径。

所以在你的情况下像

routes.MapRoute(“MyRoute”,“MyController / MyAction / {id} / {name}”,new {controller =“MyController”,action =“MyAction”});

您可以看到其他一些示例here

您问题的第二部分更模糊 - 您可能希望使用[授权]属性标记您的类,然后覆盖OnAuthorization,您可以在其中进行任何检查。不确定这是否是你要找的。

有一个例子here