基本思想是你有一些具有引用类型属性的类,类似这样的
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public Country HomeCountry { get; set; }
}
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
}
现在,如果您需要创建一个视图来编辑人员的数据,您对姓名或ID没有任何问题,但您确实拥有国家/地区;
目前我有两个基本的解决方案
我放的动作方法中的 nr1:
ViewData["Countries"] = countryService.GetAll();
并使用类似的东西在视图中使用它
SelectList(ViewData["Countries"], Country.Id
我将[后发布]创建(国家/地区)
nr2:创建一个PersonDto或PersonViewModel(我猜的是同样的事情)
这里我要创建(CountryVieModel countryViewModel)并且不使用ViewData
public class PersonViewModel
{
Person Person { get; set; }
public SelectList Countries { get; private set; }
public PersonViewModel(Person person)
{
Person = person;
var countryService = container.Resolve<CountryService>();
Countries = new SelectList(countryService.GetAll(),Person.Country);
}
}
但我觉得应该有比这两个更好的方法
任何人都知道最好的方法吗?
答案 0 :(得分:1)
是的,nr2是最好的。