Расположение и маршрутизация просмотра ASP.NET MVC

У меня есть базовый контроллер, который я использую для возврата таких базовых представлений.

  public ActionResult Index(string pageName)
        {
            return View(pageName);
        }

        public ActionResult LanguageSpecific(string ul, string pageName)
        {
            var result = View("sv/" + pageName);

            return View(result.ViewName);
        }

Имя контроллера home, есть ли способ, чтобы он не искал содержимое sv в / home, а только в / sv

  "EnglishRoute",                                              // Route name
                "{pageName}.aspx",                           // URL with parameters
                new { controller = "Home", action = "Index", pageName = "" }  // Parameter defaults
            );

            routes.MapRoute(
              "SwedishRoute",                                              // Route name
              "{ul}/{pageName}.aspx",                           // URL with parameters
              new { controller = "Home", action = "LanguageSpecific", ul = "",pageName = "" }  // Parameter defaults
          );

Он выглядит в следующих местах:

  • ~ / Просмотры / Главная / SV / index.aspx
  • ~ / Просмотры / Главная / sv / index.ascx

person john    schedule 21.01.2010    source источник


Ответы (2)


Когда вы вызываете метод View, вы можете передать относительный путь приложения, который начинается с «~ /», а затем ASP.NET MVC будет использовать точный путь, который вы укажете:

return View("~/UseExactlyThisFile.aspx");

Таким образом, он не будет выполнять поиск в различных заранее сконфигурированных путях и местах.

Имейте в виду, что это не имеет большого отношения к маршрутизации (хотя и имеет небольшое значение).

person Eilon    schedule 21.01.2010

Если вы пытаетесь локализовать свои страницы, почему вы не используете ресурсы? Используя приведенный выше шаблон, вы действительно не пользуетесь преимуществами mvc. Или я вас неправильно понял? Простым решением было бы использовать фильтр действий, который выбирает идентификатор языка из маршрута и устанавливает UICulture. Затем представления могут использовать ресурсы для локализации своего контента.

person Claus Trojahn    schedule 21.01.2010