Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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#MVC Url格式自动更改_C#_Asp.net Mvc_Entity Framework_Asp.net Mvc 4_Url - Fatal编程技术网

c#MVC Url格式自动更改

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} 但一路上它变成了这样 我希望它是这样的: 这是我的

我的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" });
        }
    }