微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

变量在当前上下文中不存在

如何解决变量在当前上下文中不存在

| 我是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%>     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。