![](/img/trans.png)
[英]Why is my DropdownList value not being passed from my code-behind to my C# class in asp?
[英]Getting value in C# code behind from an asp:DropDownList populated with Ajax
我有2個DropDownLists,它們在呈現頁面之前用c#代碼填充。 頁面發回后,我可以成功獲取更改的值。 但是,一個條件是,如果第一個DropDownList中的值發生更改,我將重新填充第二個下拉列表。 我正在使用Ajax調用來執行此操作,並且一切都在視覺上運行良好。
問題是,當出現通過Ajax代碼填充第二個DropDownList的條件時,列表項和所選值在回發時未顯示在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$cboMutations
發送無效數據的情況進行ctl00$MainContent$cboMutations
。
由於您將數據解析為int,因此惡意用戶幾乎無能為力。 部署時也應該安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.