gpt4 book ai didi

c# - ASP.NET MVC UpdateModel 意外失败

转载 作者:太空宇宙 更新时间:2023-11-03 20:44:38 26 4
gpt4 key购买 nike

我正在尝试通过调用 UpdateModel(myObject, new[] { "stringprop1", "stringprop2", "intprop"}) 来更新一些对象属性。

由于未知原因而失败。多个字符串属性正在成功更新。当我尝试更新 int 属性时,它失败了。新的 int 值从 View 上的 html 选择列表发送。

我可以从我的 ValueProvider 中的 View 中看到数据。键与对象的属性名称相匹配,值是我对 View 的期望值(除了它是一个字符串。我认为 UpdateModel 可以处理简单的类型转换。

当我调用 UpdateModel 时会抛出 InvalidOperationException,前提是属性的值发生变化。

此外,该对象是 Linq To Sql 生成的对象。

编辑

调用 TryUpdateModel 后查看模型状态,我在遇到问题的属性上看到了这个异常:

- Exception {“由于对象的当前状态,操作无效。”} System.Exception {System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException}

我要更新的值是一个外键。为什么我不能更新这个值?感谢您的帮助?

编辑 2

我发现了这个: http://social.msdn.microsoft.com/Forums/en-US/linqtosql/thread/f9c4a01a-195a-4f2b-a1cb-e2fa06e28b25

我可以发誓我之前更改了 key 而不是关联属性,但无论如何。在这种 MVC 模型绑定(bind)情况下可以做什么?

最佳答案

去他的。我只是用老式的方式做了:

myObject.Skunk = db.Skunks.Single(s => s.ID == intprop);

关于c# - ASP.NET MVC UpdateModel 意外失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336607/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com