访问MVC框架上的URL参数

时间:2009-10-28 02:33:09

标签: c# .net asp.net-mvc

public ActionResult Edit(string param)
{

}

http://localhost/Edit/5,someothervalue,etc

我如何从全局函数中获得“param”。基本上我试图从我正在构建的statinc方法访问我的url中的参数,这将是全局的。该方法分解参数并返回id和我在param中传递的其他内容

1 个答案:

答案 0 :(得分:1)

我认为您正在寻找一种从给定网址获取路线值的方法。这里有一些代码可以帮助您使用URL字符串。请注意,我放置了一个IRouteRegistrant接口,该接口只具有一个接收路由的Register功能。基本上用您的注册机制替换它。

public static RouteData GetRouteValues(IRouteRegistrant registrant, string url)
{
      var routes = new RouteCollection();
      registrant.Register(routes);

      var context = new FakeHttpContext(url);
      return routes.GetRouteData(context);
}

因此,要获得值(对于您的参数示例),您只需要以下内容:

public static void MyFn()
{
     var values = GetRouteValues(....., "~/Edit/5");
     var paramValue = values.Values["param"];
     .....
}

希望这有帮助。