質問はMVCに関するものではなく、コードアーキテクチャに関するものです。UserControlのModelを入力する正しい方法は何ですか?
私は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の
私の質問を使用してDBからデータを取得してい:どのような "いい"正確な方法を入力してくださいCompanyModel
?:
ソリューション1
CompanyBag
public class CompanyBag
{
public string Name{get;set;}
public string Location{get;set;}
}
とProject.GetCompanyInfo()
CompanyBag
を返し、CompanyModel
の.ctorに私がモデルを埋めるだろうを作成します。
ソリューション2
Project.GetCompanyInfo()
CompanyModel
を返します(したがって、何のヘルパークラスは必要ありません)、私はCompanyModel
ソリューション3
の.ctorにModel
を記入します多分あなたの解決策?
更新: 私はロードアクションでLoadController
を持っています。このアクションは、工場のようなものです。それはビューのリストを取得し、反射によってそれらを作成し、Html.RenderPartial(viewName, viewModel)
によってページにロードします。したがって、CompanyModel
はビューの一例に過ぎず、したがって私はそれぞれのビューを独立させる必要があります。
私の質問です:GetCompanyInfoはCompanyBag
またはCompanyModel
を返し、モデルを.ctorで埋めますか?
はありがとう
私はここではカップルの日ではなかった。私はあなたを誤解して申し訳ありませんが、私は自分の投稿を更新しました。あなたが見ていただければ嬉しいです。 – theateist
私は今、私の答えを書き直しました - 基本的な要点は同じです:) –