[英]Can MVC view only support two operation: One is httpget and httppost?
我有2個視圖,分別是view1
和view2
。 在view1
有一個名為“創建新員工”的view2
鏈接。 當用戶單擊它時,將顯示view2
。 View2
包含一個表格,員工可以在其中填寫其基本詳細信息。 員工填寫表格后,單擊保存,數據將保存在數據庫中。 現在視圖顯示所有員工詳細信息。 每個員工詳細信息后面都有一個編輯鏈接。 如果員工單擊它,則view2
再次顯示填充的數據和用戶編輯,然后單擊保存並將數據保存在數據庫中。 所以最后我們有以下三種情況:
1)顯示view2
:-一種正常的操作方法,顯示具有空表格的view2
並由員工填寫。
2)填充view2
:-發布表單的[HttpPost]
操作方法
3)編輯view2
編輯已填充並保存的view2
。
我的問題是在保存視圖中如何發生這三種情況? 我們只有兩種方法來編寫動作方法:一種是httpget,另一種是httppost,最終每次只能完成兩種情況。
提前致謝!!
創建和保存用戶時都將使用[HttpPost]
。 實際上,這可能是處理兩種情況的相同方法:創建時,表單中的隱藏Id
字段將為空,而編輯同一字段時將具有一個值(在創建時分配Id
)。
您的方法可以使用該字段的值來決定要做什么。
您可以使用HttpPut
進行編輯/更新。
該矩陣很好地表示了REST和每個CRUD動作所使用的動詞。
現在默認情況下,ASP.NET MVC3不支持Put
Form方法。 SimplyRestfulRouteHandler
,可以使用MVCContrib的SimplyRestfulRouteHandler
。
我只需要一個View2的視圖模型,其中包括一個模式變量,該變量可以是一個布爾值或一個枚舉,以表示該視圖是處於編輯模式還是顯示模式。
然后,在action方法的HttpGet版本中,填充視圖模型對象,然后將此視圖模型對象提供給視圖以進行呈現。
然后,視圖可以使用給定的信息來呈現各種輸入或其他HTML元素,並使用上述的布爾值或枚舉值來決定是在顯示模式下還是在編輯模式下呈現視圖。
HttpPost方法保持不變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.