用c#代码从Ajax填充的asp下拉列表中获取值

本文关键字:下拉列表 asp 获取 填充 代码 Ajax | 更新日期: 2023-09-27 18:01:43

我有两个下拉列表,在页面呈现之前用c#代码填充。当页面返回时,我可以成功地获得更改后的值。但是,有一个条件是,如果第一个下拉列表中的值发生了变化,我将重新填充第二个下拉列表。我使用Ajax调用来做这件事,一切都很好。

问题是,当第二个DropDownList通过Ajax代码填充时,列表项和所选值在返回时不会显示在c#代码中。我读到过这不会发生的。

下拉列表有一个ID="cboMutations"

我终于得到了这个工作使用以下方法:

        Int32 id = 0;
        if (!string.IsNullOrEmpty(Request.Form["ctl00$MainContent$cboMutations"]))
        {
            Int32.TryParse(Request.Form["ctl00$MainContent$cboMutations"], out id);
        }

我的主要问题是:

使用ctl00$MainContent$cboMutations以这种方式引用属性安全吗?

它在开发中可以工作,但是在部署时它会工作吗?

用c#代码从Ajax填充的asp下拉列表中获取值

Asp.net对它接受的数据是严格的。asp下拉列表不允许您发送这样的数据。这样可以确保用户只发送服务器提供的值。

在你的情况下,你正在使用html控件,并通过传递asp.net的内置安全。您应该针对恶意用户可能试图使用输入ctl00$MainContent$cboMutations发送无效数据的情况进行编程。

由于您将数据解析为int类型,因此恶意用户几乎无法进行操作。