【发布时间】:2014-03-26 18:04:57
【问题描述】:
类:
公共类 ClassNameA :ISomeInterface { } 公共类 ClassNameB :ISomeInterface { }
来自javascript:
var reqP = { 'Id': id, 'Name':name };
var ReqParams = { 'ReqParams': reqP };
var obj = { 'ClassNameA': ReqParams };
makeAjaxCall("POST",
JSON.stringify(obj), '/ControllerName/someMethod/', 'html',
动作方法如下:
public ActionResult someMethod(object obj){
// call comes to this method but obj is not populated.
}
public ActionResult someMethod(ISomeInterface obj){
// call comes to this method but throws exception.
// Exception : Cannot instantiate interface. but i am passing class object.
}
我将通过 JavaScript 传递实现 ISomeInterface 的具体类类型的对象,以便我可以有多个实现。具体类可以是这两种类型中的任何一种。
有什么建议吗?
【问题讨论】:
-
你需要一个定义好的模型作为参数。
-
然后它与定义的模型类型紧密耦合。我不要那个。所以如果我使用泛型类型,那么我可以在转换后使用它来基于对象类型进行特定的实现。
标签: c# javascript asp.net asp.net-mvc json