代码隐藏文件中无法引用隐藏字段

时间:2011-12-29 22:22:20

标签: asp.net hiddenfield

我的ASP.NET 2.0 webform中有以下HiddenField:

<asp:HiddenField ID="HiddenModel" runat="server" 
OnValueChanged="HiddenModel_ValueChanged" />

我的代码隐藏在这个if..else语句中引用了HiddenModel:

if (serial.Text.ToString() != "0")
{
CarpetMultiView.ActiveViewIndex = 1;
HiddenModel.Value = model.SelectedItem.Text.ToString();
LabelCurrent.Text = "Your Current Selection is :
Make-" + make.SelectedItem.Text.ToString() + " Model-" + 
model.SelectedItem.Text.ToString() + " S/N-" + serial.SelectedItem.Text.ToString();
Page.Title = make.SelectedItem.ToString() + " " + model.SelectedItem.ToString() + " " + 
serial.SelectedItem.ToString() + " " + "Carpet";
}

当我使用VWD 2005调试解决方案时,收到以下错误:

The name 'HiddenModel' does not exist in the current context    

我的@Page指令继承了与代码隐藏类匹配的rug_template:

public partial class carpet_template : System.Web.UI.Page

如何解决这些和其他类似错误?

3 个答案:

答案 0 :(得分:1)

从以下链接: “如果您在IIS中进行测试,则应该转到VWD中的网站菜单,单击启动选项,单击左窗格中树上的”构建“,然后在标记为”运行启动页面之前“的下拉列表中选择”无构建“ ”

全文HERE.

答案 1 :(得分:0)

当代码超出页面生命周期的上下文时很难确定,但听起来asp.net根本不接受该字段当前存在。

最合乎逻辑的原因是隐藏字段在页面生命周期中尚未存在(请参阅page lifecycle) - 代码是在页面加载之前还是在控件呈现之前运行的?

或者,如果表单出现问题,您可能会遇到此行为(例如,如果隐藏字段不在表单标记内)。

答案 2 :(得分:0)

删除相同文件的所有备份副本。删除这些备份文件后,我在同一文件夹中有相同文件的备份副本 - 解决方案正在编译而没有任何错误。

从以下链接获得此解决方案:[slash84]
http://forums.asp.net/post/3060379.aspx