Это определенное поведение, поскольку ViewLocationFormats и PartialViewLocationFormats определены следующим образом, и сначала будет просматриваться страница aspx.
ViewLocationFormats = new[] {
"~/Views/{1}/{0}.aspx",
"~/Views/{1}/{0}.ascx",
"~/Views/Shared/{0}.aspx",
"~/Views/Shared/{0}.ascx"
};
PartialViewLocationFormats = ViewLocationFormats;
PartialViewLocationFormats должен исключать определения aspx, по моему мнению.Переопределение стандартного WebFormViewengine может решить эту проблему.Обратите внимание, вам необходимо зарегистрировать это в методе Application_Start()
public class ASPXViewEngine: WebFormViewEngine
{
public ASPXViewEngine()
{
base.PartialViewLocationFormats =
new string[]
{
"~/Views/{1}/{0}.ascx",
"~/Views/Shared/{0}.ascx"
};
base.AreaPartialViewLocationFormats =
new string[]
{
"~/Areas/{2}/Views/{1}/{0}.ascx",
"~/Areas/{2}/Views/Shared/{0}.ascx",
};
}
}