首页 新闻 会员 周边 捐助

asp.net mvc数据绑定

0
悬赏园豆:5 [已解决问题] 解决于 2020-06-11 09:46

[HttpPost]
public ActionResult AddPerson(Person p) { return Json("OK"); }

class Person {
public int Id {get; set;}
public int Type {get; set;}
}

class Teacher : Person {
public string Job {get; set;}
}

class Student : Person {
public int StudentCard { get; set; }
}

调用AddPerson时,当Type = 1 时,p成为 Teacher对象
,当Type = 2 时,p成为 Student对象
该如何实现,需要自己实现model binder吗?

Mad_Rabbit的主页 Mad_Rabbit | 菜鸟二级 | 园豆:307
提问于:2020-04-18 17:01
< >
分享
最佳答案
0

重写ModelBinder,自己实现bind方法

Mad_Rabbit | 菜鸟二级 |园豆:307 | 2020-06-11 09:41
其他回答(2)
0

首先建议你提供 AddTeacher 和 AddStudent 2个接口。

如果一定要一个接口,那么参数就不能是 Person了。因为扩展字段是取不到的
定义一个
class PersonTemp {
public int Id {get; set;}
public int Type {get; set;}
//通用的子类临时存储字段
public string tempData {get; set;}
}
拿到参数后根据type去构建相应的子类

收获园豆:5
gt1987 | 园豆:1150 (小虾三级) | 2020-04-19 11:52
0

可以使用ModelBinder

海之殇 | 园豆:500 (菜鸟二级) | 2020-04-21 10:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册