代码之家  ›  专栏  ›  技术社区  ›  Mahesh Velaga

使用T4MVC指定局部视图路径

  •  2
  • Mahesh Velaga  · 技术社区  · 15 年前

    在我看来,我有这样一种说法:

    <% Html.RenderPartial(MVC.SomeController.Views.PartialViewName); %>
    

    以前是这样的,

    <% Html.RenderPartial("../SomeController/PartialViewName"); %>
    

    以前它工作正常,但在我使用T4MVC指定了部分视图之后,它无法定位该部分视图。

    它只是试图在下面的路径中找到它,这是默认行为。

    ~/Views/SomeController
    ~/Views/Shared
    

    是否有办法通过T4MVC指定其他控制器视图文件夹中的局部视图?或者不管我在做什么,对吗?我错过了什么?

    谢谢

    2 回复  |  直到 14 年前
        1
  •  4
  •   Arnis Lapsa    15 年前

    一种方法-可以扩展viewengine并使其了解特定的局部视图位置。我自己把所有的片面观点都放进去了 Views/Home/Partial (在哪里 Home =>控制器名称)文件夹。

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

        2
  •  4
  •   David Ebbo    15 年前

    您可能已经知道,我已经更改了T4MVC以生成视图的完整路径,而不是短名称。因此,您上面的原始代码应该可以正常工作。如果遇到问题,请告诉我。

    这在版本2.6.03中。 Download Page .