Asp.net mvc ASP.NET MVC母版页

Asp.net mvc ASP.NET MVC母版页,asp.net-mvc,master-pages,Asp.net Mvc,Master Pages,在findview方法中的自定义viewengine中,母版名始终为空,即使页面已定义母版页。 知道为什么吗,或者我怎样才能得到这个名字 在viewEngine类中: MasterLocationFormats = new[] { "~/{0}.master", "~/Shared/{0}.master", "~/Views/{1}/{0}.master", "~/Views/Shared/{0}.master" }; public override ViewE

在findview方法中的自定义viewengine中,母版名始终为空,即使页面已定义母版页。 知道为什么吗,或者我怎样才能得到这个名字

在viewEngine类中:

MasterLocationFormats = new[] {
    "~/{0}.master",
    "~/Shared/{0}.master",
    "~/Views/{1}/{0}.master",
    "~/Views/Shared/{0}.master"
};

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache) { }
在页面中:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Empty.Master" Inherits="System.Web.Mvc.ViewPage" %>

主文件已存在


谢谢大家!

也许您的母版页不在标准位置?您可以发布自定义viewengine的一些代码吗?

Debra,如果返回视图的操作方法特别提到母版页名称(例如,返回视图(“viewName”、“masterName”)),FindView将尝试在MasterLocationFormats数组中指定的位置查找它,并将其指定为视图的母版页。此母版页将覆盖页面指令中指定的母版页

另一方面,如果操作方法未指定母版页,FindView将不会查找它,因为它也不知道它。只有在呈现页面时,ViewEngine才会从页面指令中提取母版页名称,并与页面的其余部分一起呈现

希望能有帮助