'从2008年到2010年转换后,在temp生成的* .cs文件中已经定义了一个名为'x'的局部变量'

时间:2011-07-22 10:38:01

标签: visual-studio-2010

不确定是否有人可以在这里提供帮助,但我们正在从VS 2008迁移到2010年,并且在我们的网站上遇到了编译问题。

我们转换了返回0转换错误的项目。

当尝试构建网站(而不是webapp项目)时,asp.net temp文件夹中生成的.cs文件中会出现错误,表明已定义了本地变量x。错误是正确的,变量已被声明,但我无法理解为什么代码生成器只有一个时会创建同一控件的2个实例。

#line default
#line hidden
namespace.to.control.lib controlid;

#line 9 "C:\path\control.ascx"
         controlid = ((namespace.to.control.lib (@__container.FindControl("controlid")));

上面的行是重复的,第2行是错误所指向的。

我已经清除了安装的所有.net版本的临时文件 - 还有其他任何建议吗?

1 个答案:

答案 0 :(得分:0)

这取自我刚才添加的上述说明 - 我只是认为添加'答案'是合适的,希望能帮助其他可能遇到此问题的人。

.net临时文件中复制的控件通过ITemplate内部属性嵌套在另一个控件中。

[PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(MDSL.Web.UI.WebControls.FormView), BindingDirection.TwoWay), TemplateInstance(TemplateInstance.Single)]
[Bindable(true, BindingDirection.TwoWay)]
public ITemplate Template { get; private set; }

此属性使用TemplateInstance.Single修饰(失去了findcontrol的痛苦,并允许通过后面的代码中的id访问控件)。

重复的控件有一个绑定,当删除时似乎停止了错误,但由于需要绑定,因此删除了属性属性并重新计算代码以支持它。

SelectedValue='<%# Bind("column") %>'