问题标签 [updatemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
474 浏览

c# - MVC 的 UpdateModel 表现奇怪和还原值。为什么?

我有一个我正在尝试使用 MVC(2) 更新的对象,也使用 EntityFramework 框架。

我知道我没有提供太多代码,但我真的觉得没有必要。我有这样的逻辑的原因,我会解释:

  • 我有一些级联下拉菜单,当其中一个下拉菜单为空时,我使用 jQuery 为其填充“未知”值,例如 id 为 -1。
  • 因此,当我得到值 -1 时,我创建了另一个表中的 UNKNOWN 值。
  • 然后我找到那个对象并将它分配给Fruit

像这样的代码:

运行 line后UpdateModel(object);,我设置的值,例如,Fruit恢复为从表单发送过来的值...(即 -1),然后EntityFramework.SaveChanges();FK contrainst 失败(因为不存在 id 为 -1 的水果)!很公平——但这不是我分配给你的!

我不明白为什么它会恢复,因为在第一个AddToFruits()未知数在数据库中之后......一直到UpdateModel(object);它在object......

如果它像我分配的那样添加它,则不会出现 FK 约束异常。但是 MVC 的 UpdateModel 决定做一些奇怪的事情并默认为(可能是表单提交时出现的)并将其搞砸了。

为什么会这样?我该如何解决?

0 投票
1 回答
375 浏览

asp.net-mvc-3 - MVC 3 - 当 ModelState 无效时,使用集合中的集合重新填充 ViewModel 属性

我有一个 ViewModel 有几个属性,其中包含用于在表单中填充 DropDowns 的集合。在 get Action 中,这些属性被填充,然后视图被正确渲染。

当用户提交表单时,在 Post 操作中,我的 ViewModel 包含表单中填写的所有数据,但所有集合属性均为空,因为浏览器不发送它们。没关系,当 ModelState 有效时,我不再需要它们了。但是,当 ModelState 无效时,我需要再次显示表单以更正错误。

MVC 是否将这些集合临时存储在任何地方,因为 ViewModel 属性可以很容易地填充与 get 操作中相同的值,还是我必须手动填充它们(从缓存或新查询到 db)?

我想,MV​​C 存储原始值,因此可以在后期操作的验证期间使用它们,但我想不通。

谢谢

0 投票
1 回答
1189 浏览

asp.net-mvc - 如何使用(尝试)UpdateModel?

使用 (Try)UpdateModel 的正确方法是什么?

当我运行这个:

  • TryUpdateModel返回真,
  • ViewData没有错误,
  • 但我Proxy的没有更新。

动作方法

发布数据

事物类

编辑:我也尝试过明确地传递表单集合 TryUpdateModel(Proxy, TypeName, idontknow)

编辑#2:(回应尼克拉森)

  1. 重新启动VS和服务器,没有变化。
  2. 值实际上在 FormCollection 中。
  3. 模拟数据有效!我知道我一定在这里搞砸了。
  4. 使用调试器检查值。
0 投票
1 回答
754 浏览

asp.net-mvc-3 - TryUpdateModel / UpdateModel 不起作用?

我正在尝试更新数据库中存在的多个对象并保存新对象,但它不起作用?

这是我的代码:

如果在 TryUpdateModel 之后我执行 db.SaveChanges(); 我得到一个具有引用完整性的 System.Data.UpdateException

如果我让我的代码像示例中一样,它就不会更新!:S

哦,是的,我也尝试过 UpdateModel() 。

有什么建议么?

提前致谢!

干杯

0 投票
1 回答
2081 浏览

javascript - MVC3 - 多个元素具有相同 ID 时的 jQuery 日期选择器

我有一个奇怪的情况(我们不是吗?)日期选择器,想得到一些建议。

我有一个包含位置列表的屏幕,对于每个位置,他们可以单击编辑并编辑该位置。编辑显示在编辑链接下方,他们可以一次编辑多个位置。这意味着在屏幕上多次呈现同一个视图,因此将存在多个具有相同 id 的字段(编辑 4 个位置将导致 4 个“DateOpened”字段)。

因此,当我加载视图时,javascript 会将日期选择器添加到任何需要它的字段,如下所示:

工作正常,但是,正如您可能已经知道的那样,当我单击日历上的日期时,当多个编辑窗口打开时,它会填充第一个“DateOpened”字段。

有没有办法告诉日期选择器在某个父级中使用该字段,就像一般 jQuery 选择一样?

...或者有没有办法在不破坏 MVC 的 UpdateModel() 函数的情况下为字段提供不同的 id?或者有什么其他建议?

0 投票
3 回答
8594 浏览

c# - UpdateModel() 做什么?

用外行的话来说,做UpdateModel()什么,以及TryUpdateModel()?我似乎无法(在 SO 或网络上)找到任何关于它实际作用的明确解释(用明确的术语),只是人们在使用它时遇到问题。

VisualStudio 的智能感知也没有帮助我。我问的原因是,比方说,如果我的控制器中有这个:

我不是已经通过设置更新我的模型了vm.BA.StatesTraveledTo吗?为什么我需要运行 UpdateModel?此外,当我实际尝试执行以下操作时:

当我检查 ModelState 的值(在我运行 UpdateModel() 之后)时,似乎什么也没发生,我没有看到任何表明有任何变化的东西。我在 ModelState 字典中没有看到新键。

真的很迷茫。谢谢!

编辑:

发布 ViewModel 和 Model 类的源代码:

0 投票
2 回答
2137 浏览

asp.net-mvc - 用于实体上下文访问的 ASP MVC 3 基本控制器

我已经为我的 MVC 3 项目实现了一个基本控制器,以允许从我的数据库上下文访问用户实体的通用方式:

这很好用,我的所有控制器都可以访问this.db.MyEntity并可以通过调用来检索UserDetails对象this.GetActiveUserDetails()

但是,当我尝试对实体执行更新时出现问题:

任何想法为什么UserDetails可以轻松检索对象,但是当我在调用后检查我的数据库时SaveChanges(),没有任何更新?我假设我正在以两种不同的方式访问我的上下文,但我看不到我是怎样的......!

编辑:这是 GetObjects.GetActiveUserDetails() 方法

不是我知道的最干净的方法......

0 投票
1 回答
789 浏览

asp.net-mvc - 模型绑定 - 输入外部装配体

我在程序集中有一个类型,它没有被核心库引用,但被 Web 应用程序引用。例如

现在我在核心库中有以下代码:

代码很容易解释,但 latestPosts.NumPosts 属性永远不会更新,即使该值存在于表单集合中。

如果有人可以帮助解释为什么这不起作用以及是否有替代方法,我将不胜感激。

谢谢

0 投票
1 回答
1539 浏览

asp.net-mvc-3 - 如何在 MVC3 控制器中调用 UpdateModel 之前禁用验证

我希望在提交之前启用“保存”表单数据。

我希望用户能够保存表单进度,即使表单处于无效状态,然后稍后再返回。

现在,我唯一的问题是我希望能够使用UpdateModel方法来更新我的模型。但是,由于表单可能无效或仅部分完成,这将引发错误。

有没有办法注释以下方法,以便在SAVE实例中忽略验证?

我希望不必为要保存的元素编写 1-1 映射 - 这是我的后备选项,但不是很容易维护。

0 投票
1 回答
872 浏览

entity-framework-4 - 更改 EF 模型并在运行时创建新实体

我在模型中使用 EF4(DB First),在实体中使用 POCO,在 UI 中使用 ASP.Net。我当然有一个 Biz 层。我需要设计动态表单生成器。我决定从用户设计的表单中创建一个表,然后在运行时更新我的​​ EF 模型,在运行时生成 POCO 对象和 biz 逻辑,然后在运行时编译它们。

我有关于在运行时更新模型的问题。有什么帮助吗?

在此先感谢-哈米德