自定义ViewEngine,但仍然可以使用HtmlHelper可编辑?

时间:2012-11-08 23:01:35

标签: c# asp.net-mvc razor viewengine

如果我没有说明这一点..剃刀视图引擎被指定为仅允许默认路径的HtmlHelper可编辑..但是如果我改变或扩展引擎应该查找我的部分视图然后想要的路径怎么办?能够在其中一个部分中使用Html.EditorFor()...无论如何还要让Html.EditorFor也能使用这个自定义路径吗?

1 个答案:

答案 0 :(得分:0)

是的,您仍然可以使用 Html.EditorFor ,因为他们只会使用所有您的视图引擎来解析您要查找的视图。如果您想看一个如何使用新路径创建自己的视图引擎的示例,请从我的一个项目中查看此视图​​引擎。

https://github.com/stevehodgkiss/restful-routing/blob/master/src/RestfulRouting/ViewEngines/RestfulRoutingRazorViewEngine.cs

public class RestfulRoutingRazorViewEngine : RazorViewEngine
{
    public RestfulRoutingRazorViewEngine()
    {
        AreaMasterLocationFormats = new[] {
                                              "~/Views/{2}/{1}/{0}.cshtml",
                                              "~/Views/{2}/{1}/{0}.vbhtml",
                                              "~/Views/{2}/Shared/{0}.vbhtml",
                                              "~/Views/{2}/Shared/{0}.cshtml",
                                          };

        AreaViewLocationFormats = new[] {
                                            "~/Views/{2}/{1}/{0}.cshtml",
                                            "~/Views/{2}/{1}/{0}.vbhtml",
                                            "~/Views/{2}/Shared/{0}.cshtml",
                                            "~/Views/{2}/Shared/{0}.vbhtml",
                                        };

        AreaPartialViewLocationFormats = AreaViewLocationFormats;
    }
}

我仍然使用EditorFor来计算我对编辑器和显示模板的看法。