我正在寫一個應用程序在asp.mvc。我有一個視圖,顯示具有特定ID的產品,並在該視圖上用戶可以修改產品。有一個顏色下拉列表,用戶可以選擇。可用顏色範圍取決於用戶的權限,並非所有用戶都可以訪問所有顏色。 當用戶點擊「保存」按鈕,ajax請求我們發送到服務器與產品ID和選定的顏色。 下面是問題: 當用戶打開頁面時,我檢查他是否有權編輯帶有URL提供的id的產品,並且僅顯示用戶可以訪問的顏色。但是我不能保證用戶修改保存產品時發送的ajax請求。因此,我可以顯示帶有ID 1的產品和帶有ID 12,13,14的顏色,但用戶可以手動更改請求並將產品ID更改爲3(他不允許編輯),並將顏色選擇爲15(他應該甚至看不到)。ASP MVC - 如何取代viewstate?
在舊的webforms中,這不是問題,因爲產品id可能已經保存在viewstate中,並且在服務器端我檢查選擇了哪個下拉列表,然後我知道選定項的id是什麼存儲在視圖狀態或控制狀態)。你如何解決MVC中的這個問題?當我顯示數據並收到數據時,例如在「保存」請求中,我是否必須檢查用戶是否可以訪問每個元素兩次?
您是否嘗試過使用會話? – RononDex
您可以使用隱藏字段來存儲Id值。 –