1

在呈现页面之前,我有 2 个 DropDownLists 在 c# 代码中填充。回发页面后,我可以成功获取更改后的值。但是,一个条件是如果第一个 DropDownList 中的值发生变化,我会重新填充第二个下拉列表。我正在使用 Ajax 调用来执行此操作,并且在视觉上一切正常。

问题是,当第二个 DropDownList 通过 Ajax 代码填充的条件出现时,列表项和选定的值在回发时不会在 C# 代码中显示。我读过这不会发生。

DropDownList 有一个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以这种方式引用属性是否安全?

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

4

1 回答 1

0

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

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

由于您将数据解析为 int,因此恶意用户几乎无能为力。部署时您也应该是安全的。

于 2013-02-28T09:09:10.310 回答