c#MVC Url格式自动更改
我的web应用程序有点问题。我正在为我的应用程序使用C#MVC,我为我的URL创建了一个自定义格式,因为我的应用程序将根据我在URL中收到的代码连接到不同的数据库 问题是,当我第一次使用我的应用程序时,url会随之改变。 下面是一个例子: 我的自定义格式如下所示: {code}/{culture}/{controller}/{action}/{id} 我从一开始就有这个url: 这里的efs表示{code}和fr ca的{culture} 但一路上它变成了这样 我希望它是这样的: 这是我的路线图:c#MVC Url格式自动更改,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,url,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Url,我的web应用程序有点问题。我正在为我的应用程序使用C#MVC,我为我的URL创建了一个自定义格式,因为我的应用程序将根据我在URL中收到的代码连接到不同的数据库 问题是,当我第一次使用我的应用程序时,url会随之改变。 下面是一个例子: 我的自定义格式如下所示: {code}/{culture}/{controller}/{action}/{id} 我从一开始就有这个url: 这里的efs表示{code}和fr ca的{culture} 但一路上它变成了这样 我希望它是这样的: 这是我的
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{code}/{culture}/{controller}/{action}/{id}",
//defaults: new { code = string.Empty,culture = string.Empty, controller = "Home", action = "RV", id = UrlParameter.Optional }
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("Error", "{*url}", new { controller = "Error", action = "Error" });
}
}
如果您需要更多信息,请询问我:)
谢谢你抽出时间
试试这个
问题是,代码“efs”可以是任何东西,所以我不想在其中添加默认值,所以不要包含默认值。但是,如果没有默认设置,则必须始终提供URL的部分。换句话说,无法仅加载文档根(
/
)。@Shan回答的要点是,您需要更改默认路线以包含这些路线参数。如果您有一条不需要它们的路线,MVC将始终短路该路线,并使用不需要它们的路线。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{code}/{culture}/{controller}/{action}/{id}",
defaults: new {code ="efs",culture="fr-ca", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("Error", "{*url}", new { controller = "Error", action = "Error" });
}
}