Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Asp.net路由_C#_Asp.net Mvc - Fatal编程技术网

C# Asp.net路由

C# Asp.net路由,c#,asp.net-mvc,C#,Asp.net Mvc,可能重复: 我正在尝试构建一个自定义路由,它将接受Test/page?id=XXX 并触发我的路径处理程序 我的问题是如何获取id值 这就是我的想法 RouteTable.Routes.Add("Test", new Route("Test/page?id=XXX}", new RouteHandler())); 此版本适用于global.asax,但请尝试: routes.MapRoute( "Test", "Test/page?id={id}", new { co

可能重复:

我正在尝试构建一个自定义路由,它将接受
Test/page?id=XXX
并触发我的路径处理程序

我的问题是如何获取id值

这就是我的想法

RouteTable.Routes.Add("Test", new Route("Test/page?id=XXX}", new RouteHandler()));

此版本适用于global.asax,但请尝试:

routes.MapRoute(
    "Test",
    "Test/page?id={id}",
    new { controller = "Test", action = "Index" },
    new { id = @"\d+" }
);

最后一个可选参数将id限制为数字,以获得更好的确定性。

假设测试是控制器,页面是动作

RouteTable.Routes.Add(new Route 
{
   Url = "[controller]/[action]/[id]"
   Defaults = new { action = "Index", id (string) null },
   RouteHandler = typeof(MvcRouteHandler)
});
但是路由在很大程度上依赖于上下文。您需要查看其他路线,并确保该路线的排列顺序正确

if (RouteData.Values.ContainsKey("customerId")) return RouteData.Values["customerId"].ToString(); if(RouteData.Values.ContainsKey(“customerId”)) 返回RouteData.Values[“customerId”].ToString();
如果我想从一个传入的url(如:www.some.com/test/page.aspx)重定向,这是否可行?id=44您希望将上述url路由到哪里?要调用哪个操作方法?我想触发一个自定义处理程序,它将执行基本的服务器重定向RouteTable.Routes.Add(“Test”,new Route(“Test/page.aspx?id=XXX}”,new RouteHandler());你是说你有一个自定义的
RouteHandler
类?