Я думаю, что способ избежать вашей проблемы - использовать разные имена представлений. У вас, вероятно, не должно быть двух представлений, имя файла которых отличается только расширением. Однако, если вы действительно хотите строгое сопоставление Page = View, Control = Partial, просто создайте свой собственный ViewEngine, унаследовав его от WebFormViewEngine, и измените форматы расположения вида:
public class MyWebFormViewEngine : WebFormViewEngine {
public MyWebFormViewEngine() {
base.ViewLocationFormats
= new string[] {"~/Views/{1}/{0}.aspx", "~/Views/Shared/{0}.aspx" };
base.PartialViewLocationFormats
= new string[] { "~/Views/{1}/{0}.ascx", "~/Views/Shared/{0}.ascx" };
}
}
Затем настройте его как ваш View Engine в Application_Start ():
// Call this method during Application_Start to setup your view engine
internal static void SetupViewEngines() {
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new MyWebFormViewEngine());
}