ASP.NET MVC просмотр местоположений и маршрутизации - PullRequest
0 голосов
/ 21 января 2010

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

  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
          );

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

  • ~ / Views / Home / SV / index.aspx
  • ~ / Views / Home / SV / index.ascx

Ответы [ 2 ]

1 голос
/ 21 января 2010

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

1 голос
/ 21 января 2010

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

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

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

Пожалуйста, имейте в виду, что это не имеет ничего общего с маршрутизацией (хотя это немного).

...