Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从用Ajax填充的asp:DropDownList中获取C代码隐藏的价值_C#_Asp.net_Ajax_Html Select - Fatal编程技术网

C# 从用Ajax填充的asp:DropDownList中获取C代码隐藏的价值

C# 从用Ajax填充的asp:DropDownList中获取C代码隐藏的价值,c#,asp.net,ajax,html-select,C#,Asp.net,Ajax,Html Select,我有两个DropDownLists,在呈现页面之前用c#代码填充。当页面被发回时,我可以成功地获得更改的值。但是,一个条件是,如果第一个下拉列表中的值发生变化,我将重新填充第二个下拉列表。我使用Ajax调用来实现这一点,一切在视觉上都运行良好 问题是,当出现第二个DropDownList通过Ajax代码填充的情况时,列表项和选定值在发回时不会显示在C#代码中。我已经读到这不会发生 DropDownList有一个ID=“cboMutations” 我最终通过以下方法完成了这项工作:

我有两个DropDownLists,在呈现页面之前用c#代码填充。当页面被发回时,我可以成功地获得更改的值。但是,一个条件是,如果第一个下拉列表中的值发生变化,我将重新填充第二个下拉列表。我使用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
以这种方式引用属性是否安全


它可以在开发中使用,但在部署时可以使用吗?

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

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


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

谢谢您的及时回复。