这是我的情况。我的解决方案结构如下。从单独项目中的验证类填充MVC视图模型
Project
用来处理路径,显示数据,...
Project.Core
用于处理业务逻辑,验证,查询,...
在Project.Core
我有我的验证DTO(一个验证类数据传输对象)。
我的验证类(在Project.Core
):
public class IncidentValidator<T> : IValidator<T>
where T : AuditReport
{
public IncidentValidator(IList<T> ar)
{
AR = ar;
}
public IList<T> AR { get; set; }
public IList<Model> Validate()
{
var list = new List<Model>();
foreach (T ar in AR)
{
list.Add(new Model
{
IncidentId = new KeyValuePair<int, RuleType>(
ar.IncidentId,
new OccurrenceCountRule(ar).RulesValidate()
),
Circuit = new KeyValuePair<string, RuleType>(
ar.Circuit,
new CircuitRule(ar).RulesValidate()
)
});
}
return list;
}
}
我的观点模型(Project
):
public class Model
{
public KeyValuePair<int, RuleType> IncidentId { get; set; }
public KeyValuePair<string, RuleType> Circuit { get; set; }
}
所以我的问题是,应该Project.Core
参考Project
有机会获得我的视图模型所以我的验证类可以填充它?然而,我不太喜欢这种方法。我想过在我的控制器内部进行验证,但也不喜欢这个想法。也许我的观点模型可以在Project.Core
之内生存或者被认为是不好的设计?
我能做些什么?
验证器将负责验证我的DTO并在视图模型中填充结果。 – Mike 2010-10-06 18:25:00