首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以动态发布视图模型吗?

我可以动态发布视图模型吗?
EN

Stack Overflow用户
提问于 2012-04-16 05:29:30
回答 1查看 1K关注 0票数 1

在asp.net mvc3中,我希望有一个泛型方法,它可以将视图模型对象添加到数据库中,从该对象发送到数据库中的正确位置。为了做到这一点,我尝试传入已发布的模型。然而,我在动态地做这件事上有一点困难。我试过了,但不起作用:

查看:

代码语言:javascript
复制
(psuedo)
begin form aiming at Add
 fields
input type = submit

控制器操作

代码语言:javascript
复制
[HttpPost]
public ActionResult Add(dynamic model,...)

问题是模型永远不会被填满。隐藏的字段是,但由模型定义的实际字段和帮助器不会进入模型。我意识到仅仅将其命名为model是不太可能的。我确信,如果我强输入模型,比如(MyExplicitClass model,...),它会工作,但这会击败动态方法,因为我希望能够发送class1、class2、class3、class5、class8、class13等。

有没有办法让它工作,因为无论发送什么@model class21dynamic model (或等效物)都会捕获该对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 05:31:41

不是的。至少在不使用自定义模型绑定器的情况下不会。

你对模型绑定的工作方式有一个根本性的误解。您认为模型绑定是基于视图中的@model工作的。这与事实大相径庭。模型绑定通过查看action方法中指定的参数来工作。

模型绑定器所做的就是查看为操作方法指定的参数的类型,然后查看请求值( querystring或post)并尝试匹配它们。如果找到匹配项,它会实例化该对象。

这里的关键是模型绑定器只实例化action方法的参数中指定的对象。什么是“动态”对象?它不知道。因此它不能创建任何类型。

编辑:

你可能会发现这个问题很有用

Polymorphic model binding

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10166271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档