Asp.net mvc 定义多个路由时,如何将路由设为默认路由?
我有一个mvc网站,其中指定了默认路线 我的应用程序中有一个url,其定义如下: 我不希望我的Url显示如上所示,但格式如上所示,但如下所示: 因此,我定义了一条路线,如:Asp.net mvc 定义多个路由时,如何将路由设为默认路由?,asp.net-mvc,routing,Asp.net Mvc,Routing,我有一个mvc网站,其中指定了默认路线 我的应用程序中有一个url,其定义如下: 我不希望我的Url显示如上所示,但格式如上所示,但如下所示: 因此,我定义了一条路线,如: routes.MapRoute( name: "Information", url: "{controller}/{action}/{Cust_ID}/{Cust_IMAGE_ID}", defaults: new { controller = "Information", action = "In
routes.MapRoute(
name: "Information",
url: "{controller}/{action}/{Cust_ID}/{Cust_IMAGE_ID}",
defaults: new { controller = "Information", action = "Index", Cust_ID = UrlParameter.Optional, Cust_IMAGE_ID = UrlParameter.Optional
});
并将其添加到现有的routeconfig.cs中
这条路线在路线表中排名第二
当我运行应用程序并访问页面时,我没有得到我想要的格式
当我将此路径放置在第一个路径中时,我获得了所需的功能,但应用程序直接打开此页面,而不是主页
如何实现我想要的功能
我的问题是-在route表中定义的多个路由中,我想将一个路由作为默认路由 您有两个主要问题:
http://localhost:3729/Information/1/2
routes.MapRoute(
name: "Information",
url: "Information/{Cust_ID}/{Cust_IMAGE_ID}",
defaults: new { controller = "Information", action = "Index", Cust_IMAGE_ID = UrlParameter.Optional
});
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
您还使用可选的Cust\u ID
参数定义了“information”URL,我猜这没有任何意义(除非您希望URL/information
列出所有客户)。根据您的要求,将Cust\u IMAGE\u ID
设置为可选也没有任何意义
另一方面,如果图像实际显示在页面上,那么将客户图像ID放入URL似乎是个坏主意。这意味着用户可以更改URL以调出与当前客户无关的其他客户的图像
另一条路线是什么?并删除
Cust\u ID=urlparmeter.Optional
(只有最后一个路由可以是可选的,如果另一个路由是url:{controller}/{action}/{ID}
,则删除Cust\u IMAGE\u ID=urlparmeter.Optional
。