0

我学习了一个课程,该课程描述了如何创建具有两种或多种语言的网站,
以及课程的第一步 - 我需要在我的项目中添加以下代码

  context.MapRoute(
            name: "lang",
            url: "{lang}/{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            constraints : new { lang = @"ru|en" },
            namespaces: new[] { "LessonProject.Areas.Default.Controllers" }
        );

        context.MapRoute(
            name : "default",
            url : "{controller}/{action}/{id}",
            defaults : new { controller = "Home", action = "Index", id = UrlParameter.Optional, lang = "ru" },
            namespaces : new [] { "LessonProject.Areas.Default.Controllers" }
        );

在文件中DefaultAreaRegistration (/Areas/Default/DefaultAreaRegistration.cs)
,但我的项目中没有此文件。
我不明白我需要创建一个新文件夹 Areas 和一个新文件 DefaultAreaRegistration.cs 或者我需要更改 RouteConfig.cs 文件,其中包含

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}

?
Global.asax中有以下代码
AreaRegistration.RegisterAllAreas();

我需要改变的部分是什么?

4

1 回答 1

0

如果之前创建了此区域,则需要将此代码添加到 DefaultAreaRegistration.cs。这意味着在创建区域时无法自动创建多文化路线。因此,如果您的解决方案中没有任何区域,您只需要在 RouteConfig.cs 中注册路由。它已经完成了。而且你不需要任何区域来实现多文化功能。

于 2013-05-29T13:45:29.713 回答