在实现资源时,代码中没有找到ASP.net控件

时间:2012-07-04 15:10:37

标签: asp.net visual-studio-2010 .net-4.0 intellisense globalization

由于我们在ASP.net 网站中实施了全球化,因此我们遇到了一些智能感知问题。

当资源添加到asp.net控件时,我们会收到错误。 即使错误在visual studio中显示,该应用程序仍可正常工作!

例如,以下按钮

 <asp:Button runat="server" ID="BtnSave" Text="<%$ Resources:ResourceName, Save %>" OnClick="BtnSave_Click" />

在后面的代码中无法识别:

intellisense problem

仅在后面的代码打开时才会显示错误。但是在浏览器中它可以工作!

没有资源引用的相同按钮效果很好:

 <asp:Button runat="server" ID="BtnSave" Text="Save" OnClick="BtnSave_Click" />

这是一个自定义SQL资源提供程序工厂,已添加到web.config:

 <globalization resourceProviderFactoryType="MyNamespace.SqlResourceProviderFactory" />

我尝试删除缓存并重新启动计算机。

您对如何找到问题有任何提示吗?

提前致谢。

8 个答案:

答案 0 :(得分:6)

当我创建一个新的VS2010解决方案并拖入现有网站时,我遇到了这个问题。要解决这个问题,请右键单击项目并“转换为Web应用程序”,这将创建设计器文件并修复智能感知问题。

答案 1 :(得分:3)

我自己曾经这样做了几次,但对全球化没有反应。

我总是通过重新启动VS(看起来你已经尝试过)来解决它,或者检查前端代码中的类名并返回代码是相同的。

这听起来像是一个愚蠢的事情,但如果你复制一个页面,那么类名不会更新,所以绑定有点偏斜(这是一个技术术语)。

可能无济于事,但需要检查一下。

答案 2 :(得分:1)

尝试清除临时编译的页面缓存,包括32位和64位各自的目录(如下所示64位):

%System Drive%:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files

有时可以做到这一点

答案 3 :(得分:1)

您是否可以使用隐式资源键引用来尝试它,看看这是否有帮助,而不是您正在使用的显式引用?

http://msdn.microsoft.com/en-us/library/ms227427.aspx

此外,您是否尝试删除“obj”文件夹并重建 - 有时这对我有用吗?

答案 4 :(得分:1)

当.aspx页面的内容已批量复制到新页面时导致2个.aspx文件指向后面的相同代码时出现此问题

CodeFile="xxxxxxxx.aspx.cs"

它以同样的方式表现出来,错误抛出,停止构建但注释掉,构建然后将其评论回来并且网站和功能运行良好。

答案 5 :(得分:1)

通常可以通过清理和重建来修复。

如果不起作用,请尝试在标记或设计视图中添加内容以强制重新生成设计器文件。

重命名页面文件时也会发生这种情况。在.aspx文件中仔细检查“CodeBehind =”和“Inherits =”字段是否正确:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebPagName.aspx.cs" Inherits="NameSpace.ClassName" %>

例如,如果您的网页名称是WebPage1,并且WebPage1.aspx.cs文件中的类名是WebPage1,而您的项目名为Project1,那么它可能如下所示:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebPage1.aspx.cs" Inherits="Project1.WebPage1" %>

答案 6 :(得分:0)

你可以做“清洁解决方案”并删除c盘中asp.net的临时文件夹,让我知道这是否有帮助

答案 7 :(得分:0)

我们的资源提供程序出现了问题:它正在编译并处理运行时,但在没有HTTP上下文(HttpContext.Current)的情况下运行时崩溃。

我建议遇到同样问题的其他人检查他们的web.config文件中使用的类是否存在这种不一致。