asp.net mvc数据绑定

2020-06-11 09:02发布

[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吗?

3条回答
贼婆χ
2楼-- · 2020-06-11 09:28

可以使用ModelBinder

查看更多
你好瞎i
3楼-- · 2020-06-11 09:32

重写ModelBinder,自己实现bind方法

查看更多
叛逆
4楼-- · 2020-06-11 09:39

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

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

查看更多
登录 后发表回答