2013-08-23 71 views
1

我有一個使用c#MVC4和jQuery/AJAX開發的Web應用程序。我想要做的是向用戶顯示一個視圖,他們可以在不提交整個表單的情況下更新特定模型的特定屬性。例如,數據庫中的一個實體對象是「Task」類。這個類有幾個屬性(TaskName,TaskDescription等)。這個想法是顯示一個列出這些屬性的視圖,用戶可以單獨點擊每個屬性,顯示一個填充了他們可以編輯的屬性值的文本框。我希望能夠根據需要按需保存每個編輯(使用每個文本框旁邊的按鈕),並在每個字段中包含驗證。我將如何構造controller/viewModel以適應此?我會爲每個領域有多個控制器功能嗎?一個「編輯」功能可以接受整個模型?使用MVC4 - 更新模型元素的最佳實踐

+3

這不是一個具體問題。從學習MVC開始,然後你可以使用你所學到的來解決這個問題。 http://www.asp.net/mvc/tutorials/mvc-5/introduction/getting-started – speti43

+0

由於這些是ASP.NET MVC 4的基礎知識,因此我建議您觀看http:/下載的精湛視頻教程。 /www.asp.net/mvc。你應該開始學習MVC,然後再提出關於它的問題:) – neeKo

回答

3

實際上,與網站的大多數其他組件相比,提交表單中的數據量非常小,因此提交「整個表單」時沒有問題。您可以在每次更新時將您的整個模型提交回您的發佈操作(您可以爲同一表單提供多個提交按鈕)以及一個控制器操作,它將使用新模型更新您的數據庫。但是,如果您確實希望單獨更新每個組件,那麼您可以爲每個提交此值和TaskId的值創建單獨的表單。這些將提交給不同的操作,每個操作都必須找到要更新的模型並進行更新。

就我個人而言,我更喜歡前者,因爲它使您的架構變得簡單並且所需的代碼更少。

+1

發佈整個表單解決的另一個問題是*對象級驗證*的問題。在現實世界的應用程序中,您很少驗證field-per-field,但通常必須驗證整個模型對象,因爲不同的字段可能是互斥的,或者更經常地,某些字段值在其他字段中有副作用等。因此,爲了使模型保持一致(邏輯上,就業務規則而言),您必須對其進行全面檢查,而以無狀態方式執行此操作的最簡單方法是將完整的對象提交或失敗作爲整個。 –