我有一个网址,看起来像这样获取登录操作方法路由值
http://mysite/account/login?returnurl=/Event/Details/41
和returnUrl = "/Event/Details/41"
我需要从返回的URL获取路线价值观 - 其中包括事件ID = 41
我能够使用这个代码来获取事件ID:
public ActionResult Login()
{
....
string returnUrl = Request.QueryString["ReturnUrl"];
int lastIndex = returnUrl.LastIndexOf("/") + 1;
string strEventID = returnUrl.Substring(lastIndex);
int EventID = Int32.Parse(strEventID);
....
}
但我觉得可以有一个更灵活的方式,让我访问querystrings,路由值等,而无需手动这样做。
我不想使用WebRequest,WebClient和等等,只是寻找MVC相关的解决方案或更简单的东西。
这应该帮助 - http://stackoverflow.com/questions/1481565/string-url-to-routevaluedictionary – 2013-04-09 12:34:17
由@DmitryKhryukin给出的链路上的解决方案是一个去,并且它仍然有效为MVC3。另外,'action'始终是'controller'键前面的最后一个键。所以如果你的方法中有参数,它们会出现在这两个键之前。 (例如id,arg2,arg3,控制器,动作) – 2013-04-09 13:36:14
我认为上面的链接非常重视我想要做的事情。这里的大多数答案只是重复了我在问题中的含义,但使用了不同的方法。我想要的是解析returnUrl并提取路由值,例如'Id = 4','Action = Details'和'Controller = Event'。如果在那个returnUrl中有一个查询字符串,我应该可以得到它 – codingbiz 2013-04-09 14:41:26