2011-12-29 19 views
1

我有一個網頁和一個模態對話框頁面。點擊顯示模式對話框中的保存按鈕。關閉窗口並返回一個值。現在,當 控件達到父窗口的JavaScript函數時。我打算在這個返回的ID的基礎上執行一些數據庫操作。避免在網絡表單中隱藏字段

我正在使用以下方法來利用此返回的值。

  1. 將其保留在隱藏字段中並在隱藏控件中填充返回的值。
  2. 在父窗口中保留一個隱藏的按鈕,當控件返回到父頁面的JavaScript函數時執行單擊事件。因此,在服務器端按鈕處理程序從隱藏字段獲取值並根據返回的值執行數據庫操作。

這種方法很好。或者我可以擺脫隱藏的領域

回答

1

如果返回的ID不是非常敏感的信息,那麼某人可以使用這些信息修改不屬於他的記錄。人們可以在客戶端完美地處理任何其他ID的ID,並讓您的邏輯更新與您的預期不同的記錄。

如果你只是在調用一個傳遞這個ID的服務器端方法;你爲什麼不從彈出窗口本身進行整個更新(在那個時候你已經知道了ID)?

如果父窗口(頁面)打算更新;您只需執行頁面的正常刷新(即使用window.location將用戶重定向到同一頁面,以便他可以看到更新或使用Response.Redirect即可訪問同一頁面。)

+0

我在父頁面有一個網格,父頁面正在使用這個ID,還有一些其他操作 – Pankaj 2011-12-29 17:40:57

+0

@StackOverlowUser:同樣,如果這個信息不敏感,並且沒有人操作這個風險破解你的應用的ID(例如內聯網應用)。如果這裏唯一的變量是你返回的ID,我沒有看到你如何不可能在彈出窗口中做所有其他你在父窗口上做的事情,而只是讓父窗口自己刷新。 – Icarus 2011-12-29 17:46:01

1

你可能要找的東西叫做AJAX。使用AJAX,您可以直接在JavaScript代碼中與您的Web服務器通信。那麼不需要HTML表單文章。你可能想看看像JQuery這樣的框架。這些具有簡單的實現(跨瀏覽器包裝)通過AJAX發送HTTP請求。

注意:我剛剛注意到,您正在使用ASP.NET。看看ASP.Net AJAX Page Methods

+0

我會查看它感謝這一概念。 – Pankaj 2011-12-29 17:48:19

+0

我查看了上面的建議文章,發現webMethod和靜態方法需要這樣做。我認爲這有一個陷阱。我不能在這個靜態方法中填充控件,因爲我的表單控件不是靜態的! – Pankaj 2012-01-09 14:56:19