如何仅用一个控制器处理大量派生模型
How to handle lots of derived model with only one controller
我正在使用 ASP.NET MVC,并且我有几个模型 类 都派生自父对象。我想在一个控制器操作中处理所有这些模型,因为除了某些数据字段外,它们几乎完全相同。我想将它们保存到数据库中。我怎样才能实现这样的行为?
示例:
class ParentModel {...}
class ChildModel1 : ParentModel {...}
class ChildModel2 : ParentModel {...}
class ChildModel3 : ParentModel {...}
class ChildModel4 : ParentModel {...}
public class ModelController : Controller
{
//But with this I want to handle all the child objects as well
//And add them automatically to the database.
public ActionResult Add(ParentModel model)
{
db.ParentModel.Add(model);
}
}
您应该创建一个 ViewModel Class 例如:
public class viewmodel
{
public ChildModel1 childModel1 { get; set; }
public ChildModel2 childModel2 { get; set; }
public ChildModel3 childModel3 { get; set; }
public ChildModel4 childModel4 { get; set; }
}
然后创建视图模型对象:
viewmodel v = new viewmodel();
现在您可以将您的子模型添加到视图模型中:
v.childModel1 = yourchildmodel1;
v.childModel2 = yourchildmodel2;
v.childModel3 = yourchildmodel3;
v.childModel4 = yourchildmodel4;
现在你可以通过这个模型了。
我正在使用 ASP.NET MVC,并且我有几个模型 类 都派生自父对象。我想在一个控制器操作中处理所有这些模型,因为除了某些数据字段外,它们几乎完全相同。我想将它们保存到数据库中。我怎样才能实现这样的行为?
示例:
class ParentModel {...}
class ChildModel1 : ParentModel {...}
class ChildModel2 : ParentModel {...}
class ChildModel3 : ParentModel {...}
class ChildModel4 : ParentModel {...}
public class ModelController : Controller
{
//But with this I want to handle all the child objects as well
//And add them automatically to the database.
public ActionResult Add(ParentModel model)
{
db.ParentModel.Add(model);
}
}
您应该创建一个 ViewModel Class 例如:
public class viewmodel
{
public ChildModel1 childModel1 { get; set; }
public ChildModel2 childModel2 { get; set; }
public ChildModel3 childModel3 { get; set; }
public ChildModel4 childModel4 { get; set; }
}
然后创建视图模型对象:
viewmodel v = new viewmodel();
现在您可以将您的子模型添加到视图模型中:
v.childModel1 = yourchildmodel1;
v.childModel2 = yourchildmodel2;
v.childModel3 = yourchildmodel3;
v.childModel4 = yourchildmodel4;
现在你可以通过这个模型了。