是否可以告诉ViewEngine在其他文件夹中查找指定控制器的部分共享视图(对于其他控制器则不是)?

我正在使用WebFormViewEngine。

这就是我的PartialViewLocations目前的样子。

 public class ViewEngine : WebFormViewEngine
    {
        public ViewEngine()
        {
            PartialViewLocationFormats = PartialViewLocationFormats
                .Union(new[]
                       {
                           "~/Views/{1}/Partial/{0}.ascx",
                           "~/Views/Shared/Partial/{0}.ascx"
                       }).ToArray();
        }

最佳答案

当然。在这种情况下,请勿更改PartialViewLocationFormats。相反,请执行以下操作:

    public override ViewEngineResult FindPartialView(
        ControllerContext controllerContext,
        string partialViewName,
        bool useCache)
    {
        ViewEngineResult result = null;

        if (controllerContext.Controller.GetType() == typeof(SpecialController))
        {
             result = base.FindPartialView(
                 controllerContext, "Partial/" + partialViewName, useCache);
        }

        //Fall back to default search path if no other view has been selected
        if (result == null || result.View == null)
        {
            result = base.FindPartialView(
                controllerContext, partialViewName, useCache);
        }

        return result;
    }

关于asp.net-mvc - 如何对指定 Controller 的部分共享 View 进行分组?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1345649/

10-10 07:54