我正在处理一个处理表单/文档的控制器,而且我更多地提前完成任务中我在方法中看到的更多重复代码部分。这是我的第一个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