当我提交MVC页面时,我在UpdateModel方法中从System.Web.Mvc Controller对象获得了IvalidOperationException。
MSDN文档声明此方法执行以下操作:
使用控制器当前值提供程序中的值更新指定的模型实例。
值提供程序是否引用当前的Request对象?
或者它究竟在哪里获得用于更新模型的值?
具体来说,UpdateModel方法在检查
时会检查它是什么意思“abcXYZ”类型的模型未成功更新
由于
答案 0 :(得分:3)
是的,默认值提供程序引用当前请求对象(默认情况下为Request.Form.AllKeys。)
UpdateModel尝试在您的Model上设置与该集合中的Key匹配的任何属性。
如果它不能,因为没有setter,或者没有直接强制转换,你将收到该错误。
答案 1 :(得分:0)
我不知道你问题的所有答案,但我之前遇到过这个问题,现在我检查我想要更新的模型是否同时包含了getter和setter。这通常可以解决我的问题。
我现在也使用TryUpdateModel,以便我可以捕获异常并实现验证类,以确保满足模型的最低要求。
我也使用UpdateModel<MyModel>(Model)
我还会在插页上使用类似public ActionResult Create(MyModel myModel){}
就像我说的那样,对你的问题没有具体的答案,但这些是我为使其发挥作用所做的事情。
希望它有所帮助。