当前上下文中不存在变量
本文关键字:不存在 变量 上下文 | 更新日期: 2023-09-27 18:00:27
我是C#.NET的新手。我想问一下这是如何工作的。。。我想要的只是展示一个从1岁到100岁的年龄选择。
在我放入此代码的.aspx
文件中,我使用了变量listAge
的数据绑定。
<asp:DropDownList ID="AgeDropDown" runat="server">
<%# listAge %>
</asp:DropDownList>
下面是它的代码:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i < 101; i++)
{
string listAge;
listAge = "<asp:ListItem>"+ i +"</asp:ListItem>";
}
}
.aspx
内部显示的错误为:
创建控件时出错:在此上下文中不支持
AgeDropDown
-代码块
因为变量listAge
?
谢谢你的帮助!
删除<%%>aspx中的部分和后面的代码中,你应该做这样的事情:
protected void Page_Load(object sender, EventArgs e)
{
AgeDropDown.Items.Clear();
for (int i = 1; i < 101; i++)
{
AgeDropDown.Items.Add(new ListItem(i.ToString(),i.ToString()));
}
}
从另一个角度来看,您的代码中有几个缺陷:
- 您正在代码隐藏中生成ASP.NET标记。ASP标记在服务器上进行处理,并呈现为html标记。实际上,您在html中插入了一个标记,浏览器会将其呈现为简单文本,因为它不是有效的html标记
- 您在for循环的每次迭代中都创建了一个新的listAge变量。即使代码可以工作,它也只显示最后一项
您可以使用AgeDropDown
的服务器版本。
ListItem li;
for (int i = 1; i < 101; i++)
{
li = new ListItem(i.ToString(), i.ToString());
AgeDropDown.Items.Add(li);
}
这是在asp.net还是MVC中?
可能是
<%#listAge%>
应该是
<%=listAge%>