在asp.net mvc3中,我想要一个通用的方法,它将视图模型对象添加到数据库中,无论数据库发送到数据库中的哪个位置。要做到这一点,我试图通过发布的模型。不过,我动态地做这件事有点困难。我试过,但没有奏效:我可以动态发布视图模型吗?
观点:
(psuedo)
begin form aiming at Add
fields
input type = submit
控制器动作
[HttpPost]
public ActionResult Add(dynamic model,...)
问题是模型是永远不会填满。隐藏的字段是,但模型用助手定义的实际字段不会进入模型。我知道只是将它命名为model
很可能不会排列正确。我敢肯定,如果我强烈地键入模型,如(MyExplicitClass model,...)
,它会工作,但这会破坏动态方法,因为我希望能够发送class1,class2,class3,class5,class8,class13等。
Is there任何方式得到这个工作,无论发送什么@model class21
,dynamic model
(或equiv)都会捕获该对象?
如果我把一个过滤器来推断,然后投的类型?这可以工作吗? – 2012-04-15 21:34:35
@TravisJ - 过滤器(假设你是一个属性)在编译时被静态绑定。他们不会在运行时工作,所以无法在运行时更改过滤器。 – 2012-04-15 21:39:02
可以通过绑定蹦跳,并在运行时使用动态创建的静态类型的副本来完成。 – 2012-04-15 21:39:54