自定义模型绑定器:如何确定子类

时间:2014-03-14 14:53:08

标签: asp.net-mvc

我在控制器POST操作上有一个自定义模型绑定器:

public ActionResult Detail(IProduct model)

详细信息实际上传递的是FooProduct,它继承自Product: IProduct

在模型绑定器中我有BindModel()方法

bindingContext.ModelType是IProduct

当我检查ControllerContext或BindingContext时,如果IP产品的具体类型是FooProductBarProduct,我找不到任何让我知道的东西。

我怎样才能找到这个?

我可以解决这个问题,但我对如何正确解决这个问题感到好奇。

1 个答案:

答案 0 :(得分:1)

您只有两个选项:

1)在您的请求中添加其他字段(查询字符串,表单字段...),以标识模型的类型。

2)检查所有字段并尝试确定指定值所需的子类。

活页夹本身没有请求和请求类型(IProduct)以外的信息,因此您必须根据此输入做出决定。