簡體   English   中英

從Ajax填充的asp:DropDownList中獲取C#代碼背后的價值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM