如果我的應用程序有一個非常糟糕的區域,是否真的必須創建單獨的「創建」和「編輯」視圖? HTML將幾乎相同。我想要一個「編輯」和「創建」動作來渲染一個「Show.aspx」視圖,但是Resharper 5肯定抱怨沒有「顯示」動作。ASP.NET MVC:我真的必須爲每個操作創建一個視圖嗎?
最佳做法是什麼?
如果我的應用程序有一個非常糟糕的區域,是否真的必須創建單獨的「創建」和「編輯」視圖? HTML將幾乎相同。我想要一個「編輯」和「創建」動作來渲染一個「Show.aspx」視圖,但是Resharper 5肯定抱怨沒有「顯示」動作。ASP.NET MVC:我真的必須爲每個操作創建一個視圖嗎?
最佳做法是什麼?
還有其他選擇。基本上我的頭頂上有三個選項。
您可以指定希望控制器方法使用哪個視圖,因此對於擁有兩個不同的視圖沒有嚴格的要求。
如果您的添加和編輯視圖看起來完全相同,但您希望向用戶清楚他們是添加還是編輯,您可以簡單地將不同的標題推送到ViewData中,並將其顯示在共享視圖中。
您還可以將視圖置於「共享」文件夾中,或者創建可共享的.ASCX部分。
去吧。它非常有意義。應該始終爲前端開發人員設置視圖,因爲控制器可以將數據傳遞到任何視圖,而無需任何額外的工作。你應該不會被限制去做某件事,只是因爲ReSharper這麼說。
你不「有」做任何事情。 MVC基於約定,這些約定很有價值,但這些在技術上並不需要。在你的情況下,我認爲避免冗餘代碼更重要。
您可能會考慮僅使用「更新」操作和Update.aspx視圖(表單)來處理它。
對創建和更新使用相同的表單。唯一的區別是,創建時,表單不會有對象ID。
提交後,如果Update操作看到一個ID,它將加載該對象。如果不是,它會實例化一個新的。然後只需更新表單中的屬性,並提交(保存)。
所以,一個動作和一個視圖。代碼少,它保持慣例。