1

我有一个在多个国家推出的应用程序。web.config 文件中将有一个设置,用于定义国家/地区。国家/地区不会出现在 URL 中。

一些观点因国家而异。我的第一次尝试是使用包含视图的 views 文件夹中的文件夹,如果它们与默认视图不同:

默认

/问题/ask.aspx

西班牙

/问题/ESP/ask.aspx

如果国家文件夹中没有视图,则使用默认视图。有没有办法扩展 ViewEngine 以首先在国家文件夹中查找视图?

编辑:

这只是一个 poc。要查看完整的实现,请查看

http://pietschsoft.com/?tag=/mvc

      private static string[] LocalViewFormats = 

       new string[] {
           "~/Views/{1}/ESP/{0}.aspx",
        "~/Views/{1}/{0}.aspx",
        "~/Views/{1}/{0}.ascx",
        "~/Views/Shared/{0}.aspx",
        "~/Views/Shared/{0}.ascx"
    };

      public LocalizationWebFormViewEngine()
      {      
        ViewLocationFormats = LocalViewFormats; 
    }
4

1 回答 1

2
public class MyViewEngine : WebFormViewEngine
{
    private static string[] LocalViewFormats = new[] { "~/Views/ESP/{0}.aspx",
                                                          "~/Views/ESP/{0}.ascx" };
    public MyViewEngine()
    {
        ViewLocationFormats = LocalViewFormats.Union(ViewLocationFormats).ToArray();
    }
}

显然,您不想对位置进行硬编码,但这应该会给您一个大致的想法。

于 2009-03-12T17:23:55.530 回答