Вопрос не о MVC, а об архитектуре кода.
У меня есть частичное представление, которое принимает CompanyModel
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CompanyModel>" %>
<%: Html.TextAreaFor(m => m.Name) %>
<%: Html.TextAreaFor(m => m.Location) %>
CompanyModel
public class CompanyModel
{
[LocalizedDisplayName("Name", NameResourceType = typeof(Resources.Views.CompanyBackground))]
public string Name{get;set;}
[LocalizedDisplayName("Location", NameResourceType = typeof(Resources.Views.CompanyBackground))]
public string Location{get;set;}
public CompanyModel()
{
var info = Project.GetCompanyInfo();
}
}
Project.GetCompanyInfo()
является уровнем DAL и получает данные из БД с использованием Entity Framework
Мой вопрос: что такое «хороший» и правильный способ заполнения CompanyModel
?:
Решение 1
Создать CompanyBag
public class CompanyBag
{
public string Name{get;set;}
public string Location{get;set;}
}
и Project.GetCompanyInfo()
вернет CompanyBag
и в .ctorиз CompanyModel
Я заполню модель.
Решение 2
Project.GetCompanyInfo()
вернет CompanyModel
(и, следовательно, класс помощника не требуется), и яЗаполните Model
в .ctor CompanyModel
Решение 3
Может быть, ваше решение?
ОБНОВЛЕНИЕ: У меня есть LoadController
с действием Load, и это действие является своего рода Фабрикой.Он возьмет список представлений и создаст их по отражению, а затем загрузит на страницу по Html.RenderPartial(viewName, viewModel)
.Итак, CompanyModel
- это только один пример представлений, и поэтому мне нужно, чтобы каждое представление было независимым.
Итак, мой вопрос: должен ли GetCompanyInfo вернуть CompanyBag
или CompanyModel
, и я заполню модель в .ctor?
Спасибо