问题描述
|
我是C#.NET的新手。我想问一下这是如何工作的...我想要的只是显示一个从1到100的年龄选择。
在
.aspx
文件中,我放置了这段代码,我对变量binding1ѭ使用了数据绑定。
<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>\";
}
}
ѭ0内显示的错误是:
创建控件时出错: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%>