如何从url中提取名为“action”的参数,而无需在MVC中手动解析查询字符串?

时间:2017-11-17 16:37:04

标签: asp.net-mvc asp.net-mvc-routing

我有一个站点条目控制器,它通过管理器上的单点登录生成的URL使用。 SSO管理器将标识哈希作为动作参数附加到它尝试登录的系统的URL。

因此,SSO经理生成的网址如下所示:

http://mysite/Entry/SingleSignOn?action=123456789ABCDEFG

我想我只需要建立一条更好的路线,但我还没有能够让它工作。当我尝试通过标准MVC绑定从url获取操作时,它会给我操作的名称,而不是我需要的哈希:

 public ActionResult SingleSignOn(string action)
 {
     // action returns "SingleSignOn"
     var querystring = Request.Url.Query; //returns "?action=123456789ABCDEFG"
     return RedirectToAction("Index");
 }

我知道我可以拆分打开查询字符串,但如果可能的话不愿意。这似乎不是一个非常复杂的问题,但我只是找不到正确的路线。

1 个答案:

答案 0 :(得分:0)

您可以使用Request.QueryString["action"]从请求网址中明确获取参数值。

public ActionResult SingleSignOn(string action)
{
   var querystring = Request.QueryString["action"];
   // Do something with querystring 
   return RedirectToAction("Index");
}