我有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
以这种方式引用属性是否安全?
它在开发中有效,但部署后会起作用吗?
答案 0 :(得分:0)
Asp.net严格要求接受哪些数据。 asp下拉列表不允许您发送这样的数据。这可确保用户仅发送服务器提供的值。
在您的情况下,您正在使用html控件并传递asp.net的内置安全性。您应该针对恶意用户可能尝试使用输入ctl00$MainContent$cboMutations
发送无效数据的情况进行编程。
由于您要将数据解析为int,因此恶意用户几乎无法做到。部署时你也应该安全。