VS2008中有许多ascx-to-ascx.cs错误

时间:2010-03-16 11:45:09

标签: asp.net visual-studio-2008 localization multilingual

我正在为该网站开发第二语言支持。所以我为现有的ascx.cs和aspx.cs制作了重复的.ascx和.aspx文件

大部分时间一切正常......但突然间我得到了:

  

类型'ctrl_xxx'存在于'c:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ d072cc72 \ b9d5698b \ App_Web_xdmblegv.dll'和'c:\ Windows \ Microsoft中.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ d072cc72 \ b9d5698b \ App_Web_gkptrzo2.dll'(翻译自俄语)

ctrl_xxx ctrl = (ctrl_xxx) LoadControl("xxx.ascx");

我几乎没有这样的代码串......并且其中一个代码发生了同样的错误。但是没有我对这些文件的任何更改。为了解决thaat bug一段时间我需要删除解决方案和网站文件夹并从SS重新登录。也许解决方案存在问题?解决方案是从vs2005转换而来。

3 个答案:

答案 0 :(得分:3)

您不应通过复制页面或控件来本地化asp.net站点。例如,您可以使用在一个页面或控件中引用的特定于语言的资源文件。看看this,了解如何本地化asp.net网站。

答案 1 :(得分:2)

我同意@Joe R,复制代码不是本地化的好方法。您可能觉得自己已经走得太远,无法改变您的方法,但从长远来看,通过不同的解决方案,您将会更快乐,更高效。

至少我会为本地化的其余部分切换到不同的方法,完成项目,然后稍后返回并将您已经完成的工作转换为新方法。

看看以下内容:

答案 2 :(得分:1)

如果您需要快速解决问题,则需要为复制的所有页面和控件指定新名称。错误来自于具有两个具有相同名称的用户控件(就像它说的那样)。

然而,其他人都是正确的,因为你正在以错误的方式解决这个问题。当您需要更改某些代码时会发生什么?它会导致额外的维护,因为您需要在两个地方进行更改。很可能,你会忘记一个,你最终会浪费很多时间。如果您现在投资使用语言资源文件,您将在以后节省头痛。而且,我甚至没有提到需要在未来添加其他语言的可能性。

修改

如果您仍然不想使用语言资源文件,请尝试以下操作。

  1. 将非语言特定代码放入单独的.cs文件中。确保它继承自System.Web.UI.UserControl
  2. 在ASCX 1中,确保其ascx.cs类继承自您在步骤1中创建的类。
  3. 在ASCX 2中,确保其ascx.cs类继承自您在步骤2中创建的类。