Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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# 更改global.asax中的管线值_C#_Asp.net Mvc 3 - Fatal编程技术网

C# 更改global.asax中的管线值

C# 更改global.asax中的管线值,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我想更改我的默认路线值 现在,我有: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults

我想更改我的默认路线值

现在,我有:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
我想要:
{controller}/{id}/{action}


这并不像我已经尝试过的那样简单地更改值。如何实现这一点?

您需要两条路线来实现这一点

只是一个粗略的想法,未经测试

 routes.MapRoute(
        "Default", // Route name
        "{controller}/{id}/{action}", // URL with parameters
        new { controller = "Home", action = "Index", id=@"\d+" } // defaults
    );

 routes.MapRoute(
        "Shorter", // Route name
        "{controller}/{action}", // URL with parameters
        new { controller = "Home", action = "Index" }         // defaults
    );
一定要把它们按这个顺序放好


不完全确定操作的签名,可能是
ActionResult Index(int?id)

您需要两条路径来完成此操作

只是一个粗略的想法,未经测试

 routes.MapRoute(
        "Default", // Route name
        "{controller}/{id}/{action}", // URL with parameters
        new { controller = "Home", action = "Index", id=@"\d+" } // defaults
    );

 routes.MapRoute(
        "Shorter", // Route name
        "{controller}/{action}", // URL with parameters
        new { controller = "Home", action = "Index" }         // defaults
    );
一定要把它们按这个顺序放好


不完全确定操作的签名,可能是
ActionResult Index(int?id)

您是否删除了
id
的“可选”规范?这是最后一次,这是有原因的。是否有办法更改URL,使
id
至少在某些情况下不是最后一个?是否删除了
id
的“可选”规范?这是最后一次,这是有原因的。是否有办法更改URL,使
id
不是最后一个,至少在某些情况下是这样?它可以工作。但是,在某些情况下,操作的
id
签名正在读取
0。
在这些情况下,它应该只是
{controller}/{action}
,但它正在读取
{controller}/0/{action}
。有什么想法吗?你可以在Action方法中处理这个问题。它只是不符合模式。它可以工作。但是,在某些情况下,操作的
id
签名正在读取
0。
在这些情况下,它应该只是
{controller}/{action}
,但它正在读取
{controller}/0/{action}
。有什么想法吗?你可以在Action方法中处理这个问题。它只是不符合模式。