我正在處理一個處理表單/文檔的控制器,而且我更多地提前完成任務中我在方法中看到的更多重複代碼部分。這是我的第一個ASP
應用程序在所有mvc或不,我不知道什麼是最佳的方式來優化我的代碼。我注意到的東西 - 那就是反覆幾次的模式是這樣的:在asp.net mvc 3控制器中處理重複的代碼
public ActionResult DisplayForm(int? documentId, long status)
{
ViewBag.Status = status;
List<MCS_DocumentFields> model = (List<MCS_DocumentFields>)DocumentFieldService.GetFieldsForDocument(documentId);
var finalModel = model
.OrderBy(c => c.ContentTypeId)
.ThenBy(c => c.RowNo)
.ThenBy(c => c.ColumnNo)
.ThenBy(c => c.MCS_Fields.Order)
.ToList();
return View(finalModel);
}
這是顯示某種形式的方法。但是,當表單編輯我處理這個在另一種方法:
public ActionResult UpdateDocument(List<MCS_DocumentFields> collection)
{
//TODO deal with the repeating code
int? documentId = (int)collection[0].MCS_Documents.Id;
ViewBag.Status = 1;
List<MCS_DocumentFields> model = (List<MCS_DocumentFields>)DocumentFieldService.GetFieldsForDocument(documentId);
var finalModel = model
.OrderBy(c => c.ContentTypeId)
.ThenBy(c => c.RowNo)
.ThenBy(c => c.ColumnNo)
.ThenBy(c => c.MCS_Fields.Order)
.ToList();
//var ts = collection;
return View("DisplayForm", finalModel);
}
我要實現對數據的驗證和更新的邏輯,但最後我想表現出同樣的觀點 - 與編輯的形式新的數據和一些適當的消息,如「保存成功」或類似的東西。
所以我想知道我能在這裏做什麼 - 在我的控制器中寫一些私有方法,我會在需要的地方調用。也許有一種方法可以...例如 - 處理UpdateDocument
方法中的保存,但然後UpdateDocument
返回DisplayForm
方法..我不確定。
Thnaks,它似乎並不像許多人想告訴關於這個話題的東西,所以我會接受你的答案,並會嘗試你的建議來優化我的代碼。 – Leron