我正在开发一个处理表单/文档的控制器,我越是推进任务,我在我的方法中看到的代码重复部分就越多。这是否是我的第一个ASP
应用程序,我不确定优化我的代码的最佳方法是什么。我注意到的东西 - 重复多次的模式是这样的:
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
方法..我不确定。