Sad*_*egh 5 asp.net-mvc routetable
我想从 RouteTable 检索路由值,但它为空。有人可以帮忙吗?
public static class GetRouteValues
{
public static string GetSomeValue()
{
RouteCollection routes = RouteTable.Routes;
var value = routes["somevalue"].ToString();
return value;
}
}
Run Code Online (Sandbox Code Playgroud)
我想检索此值以在 global.asax 文件中使用,并将其设置为某些路由值的默认值。
string value = GetRouteValues.GetSomeValue();
routes.MapRoute(null,
"{_value}/home",
new
{
_value = value,
controller = "home",
action = "index"
});
Run Code Online (Sandbox Code Playgroud)
好吧,如果您想获取当前路线,您可以在控制器中执行此操作......
var completeRoute = this.ControllerContext.RouteData.Route;
//or
var justValue = this.ControllerContext.RouteData.Values["value"]
Run Code Online (Sandbox Code Playgroud)
让我知道这是否是你所追求的......
更新:
好吧,我认为这应该可以满足您的需求。您应该能够在静态方法中使用它,而无需传入任何上下文对象。
var httpContext = new HttpContextWrapper(HttpContext.Current);
var requestContext = new RequestContext(httpContext, new RouteData());
var completeRoute = requestContext.RouteData.Route;
var justValue = requestContext.RouteData.Values["value"];
Run Code Online (Sandbox Code Playgroud)
希望有帮助。
| 归档时间: |
|
| 查看次数: |
10377 次 |
| 最近记录: |