【问题标题】:Asp.Net MVC 3 Custom WebViewPage in different namespace breaks IntelliSense不同命名空间中的 Asp.Net MVC 3 Custom WebViewPage 会破坏 IntelliSense
【发布时间】:2011-03-15 19:22:38
【问题描述】:

我有扩展 WebViewPage 的自定义类,我使用此处概述的方法将其用作所有 Razor 视图的基础:http://haacked.com/archive/2011/02/21/changing-base-type-of-a-razor-view.aspx。一切正常,除非我将其移动到与视图本身的命名空间不同的命名空间,因此 IntelliSense 停止工作(是的,我在 system.web.webPages.razor 部分的命名空间部分中包含了自定义 WebViewPage 的命名空间视图文件夹中的 web.config)。有没有解决的办法?

我最终想要做的是将所有视图移动到图形设计师可以访问的另一个项目中,但我不希望该项目中的自定义 WebViewPage 类。这是否可能在不破坏 IntelliSense 的情况下实现?

【问题讨论】:

  • 你是如何设置基本类型的?

标签: asp.net-mvc-3 razor


【解决方案1】:

这听起来很傻,但是重建并重新启动 Visual Studio 几次:-D

我刚刚重现了该问题,并尝试了一切以使其正常工作(包括更改 pageBaseType 以及一个)。我重新启动了VS,它开始工作了。移除了部件,经过几次清理/重建/重新启动循环后它仍然可以工作。

我的视图/Web.config 有这个:

<system.web.webPages.razor>
    <pages pageBaseType="ClassLibrary1.MyBasePage">
</system.web.webPages.razor>

我的 Web 项目引用了 ClassLibrary1 项目。

我的自定义类(在 ClassLibrary1 中)如下所示:

namespace ClassLibrary1
{
    public abstract class MyBasePage<T> : WebViewPage<T>
    {
        public string DannyName { get; set; }

        public MyBasePage()
        {
            this.DannyName = "Danny Tuppeny";
        }
    }
}

在 Web 项目 Views/Home/Index.cshtml 中,当我输入“@D”时,我会得到“@DannyName”的智能感知。

我尝试了一些可能有效果的东西,但在我删除它后它仍然有效:

  • 将 pageBaseType 添加到该部分的 Views/web.config 中
  • 添加了类的非泛型版本:
    • 公共抽象类 MyBasePage : MyBasePage { }

【讨论】:

    【解决方案2】:

    我发现重启你的 Cassini / IIS Express / IIS web 服务器就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      • 2023-04-03
      • 2012-08-22
      • 2017-08-15
      • 1970-01-01
      • 2011-07-17
      • 2010-11-24
      相关资源
      最近更新 更多