我有一个 MVC3 C#.Net 网络应用程序。我有两个显示相同 HTML 表的视图。但是,每个视图代表一个不同的模型。视图 1 =“提案编辑”,视图 2 =“文档编辑”。Proposal 模型和 Doc 模型都有一个属性:
ICollection<Deliverable> Deliverables.
在每个编辑视图中,我都会显示属于该视图模型的可交付成果。每个编辑视图中的代码都是相同的,只是编辑视图后面的模型不同。所以,有很多重复的代码。
如何将其模块化以减少重复代码?
我有一个 MVC3 C#.Net 网络应用程序。我有两个显示相同 HTML 表的视图。但是,每个视图代表一个不同的模型。视图 1 =“提案编辑”,视图 2 =“文档编辑”。Proposal 模型和 Doc 模型都有一个属性:
ICollection<Deliverable> Deliverables.
在每个编辑视图中,我都会显示属于该视图模型的可交付成果。每个编辑视图中的代码都是相同的,只是编辑视图后面的模型不同。所以,有很多重复的代码。
如何将其模块化以减少重复代码?
@Mike,这正是我会做的。重点是每个模型都有 DisplayTemplates。如果您愿意,即使是 DateTime 对象也可以有一个 DisplayTemplate。
编辑:
这是仅将 DisplayTemplate 用于可交付成果模型的示例
@model ICollection<Deliverables>
@foreach (var deliverable in this.Model)
{
@this.Html.DisplayFor(d => deliverable)
}
当然,您还可以在下面有一个模板~\Shared\DisplayTemplates\Deliverables.cshtml
或在下面进行编辑~\Shared\EditorTemplates\Deliverables.cshtml