C# 从用Ajax填充的asp:DropDownList中获取C代码隐藏的价值
我有两个DropDownLists,在呈现页面之前用c#代码填充。当页面被发回时,我可以成功地获得更改的值。但是,一个条件是,如果第一个下拉列表中的值发生变化,我将重新填充第二个下拉列表。我使用Ajax调用来实现这一点,一切在视觉上都运行良好 问题是,当出现第二个DropDownList通过Ajax代码填充的情况时,列表项和选定值在发回时不会显示在C#代码中。我已经读到这不会发生 DropDownList有一个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” 我最终通过以下方法完成了这项工作:
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,因此恶意用户几乎无能为力。部署时您也应该安全。谢谢您的及时回复。