我有一个大问题,我有点失望。我找不到解决这个问题的好方法:
我有谁专门谁在我CompanyA
的
控制器中有一个接口。然后我从不同的数据库加载,并在我的. 在我的中,我显示不同的对象和.CompanyB
Company
ICompany
companyA
companyB
List<company>
EditorView
companyA
companyB
当我保存时,在我的控制器中,我列表中的对象不是要键入CompanyA
and CompanyB
,但它们都是 type Company
。
保存时如何保留我的类型?
如果我的解释不清楚,这里是一些代码:
我的示例 CompanyViewModel.cs:
public class CompanyViewModel
{
#region Properties
public User User { get; set; }
public ExternalAccounts ExtAccounts { get; set; }
public List<Company> Companies { get; set; } // or List<object> Companies { get; set; }
....
#region Ctor
public CompanyViewModel()
{ }
public CompanyViewModel(ExternalAccounts extAccount, bool iniPrefLanguage = true)
{
//normaly it's load from bdd
...
Companies = new List<Company>();
if (test == true)
{
Companies.Add(new CompanyA()); // call webService
}
if (test2 == true)
{
Companies.Add(new CompanyB());
}
...
#region
}
或者我可以拥有:
public ActionResult EditCompanies()
{
...
// Companies = new List<Company>();
Model.Companies.Add(new CompanyA()); // call webService
Model.Companies.Add(new CompanyB());
return View(Model);
}
public ActionResult SaveCompanies(ComapnyViewModel model)
{
var test = model.Companies.OfType<CompanyA>(); // return null !!!
test = model.Companies.OfType<CompanyB>(); // return null !!!!
test = model.Companies.OfType<Company>(); // return my objects !!!!
return View();
}
在视野中
@Html.EditorFor(m => m.Companies)
我有带有 Company.cshtml、CompanyA.cshtml、CompanyB.cshtml 的 EditorTemplate
在 View 中加载期间,列表中的每个对象都转到正确的 EditorTemplate(CompanyA 和 CompanyB)
但是当我保存时......我只有一个公司类型的列表......
有任何想法吗?谢谢!