如何从另一个视图访问.ascx页面?

时间:2010-05-10 06:44:59

标签: asp.net-mvc

我有一个观点:用户。在那里我有一个ascx页面:详细信息 我有一个观点:测试。我想使用render partial从test中访问User中的Details。我怎么能这样做?

<%Html.RenderPartial("Details"); %> doesn`t work in this case.

1 个答案:

答案 0 :(得分:0)

使用/ views / User / Details或将其放在共享文件夹中。

修改

将其插入Global.asax并调用Application_Start

    public static void RegisterViewEngine()
    {
        ViewEngines.Engines.Clear();

        WebFormViewEngine viewEngine = new WebFormViewEngine();

        viewEngine.PartialViewLocationFormats = (new[] {
            "~/Views/Shared/PartialViews/{0}.ascx",
            "~/Views/{1}/PartialViews/{0}.ascx"
          }).Concat(viewEngine.PartialViewLocationFormats).ToArray();

        ViewEngines.Engines.Add(viewEngine);
    }

然后,您可以在所有Views文件夹中创建PartialViews文件夹,并且无需使用路径即可引用局部视图。

因此;

  • 主页
  • 主页:PartialViews
  • 共享
  • 共享:PartialViews

显然,您需要将部分视图放入PartialViews文件夹,以使其可见。 :)

但是,如果你看一下c#代码,你应该能够弄清楚它正在做什么,并提出自己的路径等。