2013-04-15 33 views
0

我正在使用ASP.NET MVC創建一個Web應用程序,並且偶然發現了一種情況,我不確定最佳解決方案是什麼。頁面上的大量表單

我有一個用戶頁面,我只是將用戶及其角色的列表加載到表中。角色是複選框,例如,管理員和管理員是兩個單獨的角色,在該行中爲用戶表示爲複選框。

在最右邊的列中是一個帶有3個按鈕的操作字段:保存,更改密碼和刪除。

更改密碼的工作方式是打開一個對話框並在Controller上觸發一個名爲ChangePassword的操作,這是一個Post請求,因爲表單位於不同的區域,並且某些值使用JavaScript設置爲隱藏字段。

通過調用名爲Delete的操作來刪除作品,這是一個Get請求,其中在視圖中通過使用Model中的值顯式設置操作參數。由於這些值是不會改變的,我可以放心地做這樣的事情:

@Url.Action("Delete", new { loginName = Model.Users[i].LoginName, username = Model.Users[i].Username }) 

然而,Save操作是不同的,因爲拯救行動是爲了用來更新用戶的角色,用戶可以通過選擇不同的複選框進行更改。我最初的計劃是將Save操作設置爲Get請求,並將值傳遞到與Delete類似的方式,但我需要使用JavaScript設置某種隱藏字段,以便知道哪些字段已更新。

另一種解決方案是讓每個表格行都有一個表格並製作Save a Post操作,並將複選框中的值綁定到操作上的模型。我不確定是否會建議這樣做,因爲這可能意味着網頁上有超過50個表單,具體取決於我有多少用戶。

我很感謝在這個問題上的一些建議。

感謝

+0

爲什麼ASP.NEt內置的成員資格提供程序不是一個選項? –

回答