2
处理绑定复杂视图模型的推荐方法是什么?例如,使用以下对象:使用动态视图模型绑定ASP.NET MVC模型
class PersonViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
//I have also tried a generic object instead of dynamic with the same results
public dynamic PreferredSportsTeam { get; set; }
}
class SportsTeamViewModel
{
public string Name { get; set; }
public string City { get; set; }
}
class BaseballTeamViewModel : SportsTeamViewModel
{
public double TeamERA { get; set; }
}
class HockeyTeamViewModel : SportsTeamViewModel
{
public int TotalSaves { get; set; }
}
我试图把任何一个BaseballTeamViewModel的实例或HockeyTeamViewModel到PersonViewModel的“PreferredSportsTeam”属性,然后传递PersonViewModel到编辑视图允许用户可以编辑所有的字段。
我已成功使用EditorTemplates显示存储在“PreferredSportsTeam”属性中的对象的相应视图。但是,在提交编辑表单时,MVC模型联编程序无法重建PreferredSportsTeam中存储的任何对象。它确实正确地填充了名字和姓氏属性,但PreferredSportsTeam属性总是以普通对象的形式返回,我无法将其转换为其他任何东西。
有没有我缺少的东西,或者它不可能与默认的MVC模型联编程序?我知道自定义模型粘合剂,并认为它们可能是一种解决方案,但我对他们不了解足够的知识以了解如何使用它们来解决问题。
我只能想到使用自定义模型活页夹。看看这个帖子的一些想法:http://www.matthidinger.com/archive/2011/08/16/An-inheritance-aware-ModelBinderProvider-in-MVC-3.aspx – Chandu
我会说这是完美的候选人为基于任务的用户界面..而不是一个完整的“一个POST来统治他们”的CRUD方法。 –