问题标签 [model-binding]

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 投票
1 回答
1573 浏览

asp.net-mvc - 从 cookie 问题中提取的自定义模型绑定器?

我正在尝试执行以下操作。

使用默认模型绑定器从查询字符串值绑定对象。
如果失败,我会尝试从 cookie 值绑定对象。

但是我在这个对象上使用数据注释,我遇到了以下问题。

  1. 如果没有查询字符串参数,默认模型绑定器甚至不会在必填字段上注册任何验证错误。如果属性本身不在查询字符串集合中,它显然甚至不会触发这些验证器。我怎样才能改变这种行为?如果它们不在查询字符串中,我希望必填字段是错误的。
  2. 如果我确实有模型验证错误,我想从 cookie 中加载模型,然后重新验证对象。我不确定如何让模型绑定器验证我自己填充的对象。

这是我到目前为止所拥有的。

任何有关如何正确执行此操作的帮助将不胜感激。

0 投票
1 回答
91 浏览

asp.net-mvc - 当我的视图将模型发布回我的操作时,我如何将它保存回它来自的数据库?

我有点困惑...

我有一个动作,它需要一个 ID,加载一个对象,然后将它传递给绑定到该对象类型的模型的视图。

在视图提供的表单中编辑数据后,我 POST 回另一个操作,该操作接受与模型完全相同类型的对象。

但是此时我不能只调用 Repository.Save,我想我现在有一个全新的对象,不再与发送到视图的原始数据库查询中的对象相关联。

那么如何更新先前查询的对象并将更改保存到数据库而不是从视图中获取新对象呢?

我什至尝试从数据库中获取对象的新实例并将返回的视图对象分配给它,然后是 Repo.Save(),仍然没有这样的运气。

我在这里做错了什么?

控制器代码:

0 投票
1 回答
1532 浏览

asp.net-mvc - 如何从asp.net mvc2中的文本框中检索值

我正在研究 asp.net mvc 中的图表项目。那么谁能告诉我如何从文本框中检索值以应用于图表系列?

0 投票
1 回答
780 浏览

asp.net-mvc - ASP.NET 集合模型绑定嵌套表单问题

我有一个绑定到对象购物车的局部视图。Cart 有一个 CartLines 的集合。我的看法如下:

有两点需要注意。第一个是我每行使用一个表单来删除项目。

第二个是我试图让用户更改订单项的数量,然后单击更新按钮将所有更改传递给控制器​​操作:

请注意,我使用的是字典,因为我只关心产品和数量。我真的不喜欢在调用 cart.UpdateItem 之前必须再次检索产品的事实,但我不知道如何将产品从模型传递到我的操作而不是 id。

然而,主要问题是相当愚蠢地将整个购物车包装在一个表格中,以便我可以回传值,然后花了一个小时想知道为什么事情在 IE 中无法正常工作 -哦!嵌套表格

所以我被困在如何解决这个问题上。我希望能够单独删除项目,但允许用户更改项目数量,然后将所有更改一次传递给控制器​​。我不能将链接用于我的删除操作,因为我需要使用 javascript 来强制发布,并且一切都必须在没有启用 javascript 的情况下正常工作。

[更新]

更好的解决方案是允许更新我的自定义模型绑定器吗?这样我就可以在我的视图中进行更改并将购物车对象发布回控制器 - 尽管我不确定子集合 (Cart.CartItems) 是否可行。我看过像亚马逊这样的网站,看起来他们将整个购物车包装在一个表单中,并且当禁用 javascript 时,全局更新按钮和单独的删除项目按钮都会返回到相同的操作。任何帮助,将不胜感激。

谢谢,本

0 投票
1 回答
741 浏览

c# - ASP.NET MVC 2.0 - IList复选框

处理此问题的最佳方法是什么:

基本上,我有所有可用的选项allOptions。我想要一个复选框,在选中时将另一个Option(即使它只是它的id)放入QuoteItem.options列表中。我将如何做到这一点?最好是IList<bool>在事后绑定它吗?

0 投票
1 回答
479 浏览

asp.net-mvc - ASP.NET MVC 2 UI 模板显示没有标记的数据。怎么修?

使用 EditorFor(model lambda, "viewTemplateName"),我的输出完全不符合预期。这不会产生任何错误,但它会在没有标记的情况下呈现输出。我究竟做错了什么?

输出:

预期输出(我需要弄清楚如何在 id 上呈现 List [] 索引,但还没有解决这个问题):

我的课程:

我的控制器:

我的索引视图:

我的课堂模板(注意 m => 项目,以便我可以使用项目,而不是模型):

我的学生模板:

0 投票
2 回答
62 浏览

c# - 在接口的实现中修改特定于类型的属性

这是我所拥有的:

我正在使用 ASP.NET MVC 中的自定义模型绑定器,因为我的主编辑表单继承自 IEvent,而我执行 RenderPartial 以添加其他特定于类型的字段

当我到达模型绑定器时,我可以看到该类型的所有键/值,这很好。现在,我想这样做:

本质上,我想要一个 IEvent 变量,并且我想创建一个实现 IEvent 并设置特定类型字段的特定事件类型。Visual Studio 告诉我的是它无法访问 BirthdayEvent 字段。

虽然,我明白这一点,但我似乎无法弄清楚我需要做什么。

0 投票
2 回答
1577 浏览

asp.net-mvc - 模型绑定到具有相同属性名称的多个类型

我有一个包含 2 个列表框的视图:Audience & Locale

我正在尝试将包含两者的选定索引的表单提交给我的控制器,该控制器具有此签名的操作方法:

我遇到的问题是 Audience 和 Locale 都有一个 ID 属性,因此 Model Binder 对于将选定值分配给哪个有点困惑。当 Audience 应该有 '2' 并且 Locale 应该有 '1' 时,两者都被分配了值'1'

问题是如何让页面在提交时区分两者?我们已经尝试在 Locale 的 ID 值前面加上“locale.”,所以作为数据传递给 Controller 的参数字符串看起来像这样 "&locale.id=1&audience.id=2",但这似乎不起作用。

有什么建议么?如果需要更多信息,我会提供。

谢谢

戴夫

0 投票
2 回答
425 浏览

jquery - 当我通过 $.get() 传递 JSON 时,模型绑定失败

这个问题与this有关。

我正在使用以下内容从页面上的选择元素中提取属性和值:

基本上,在获得代表我的选择框属性的对象数组后,我想将其转换为可以传递给服务器的数据字符串

返回的 JSON 是:

我将它传递给服务器,如下所示:

服务器上的代码是,但它没有获取值&模型绑定失败

有人能看出这有什么明显的错误吗?

0 投票
4 回答
2882 浏览

c# - 缺少参数初始化的 Asp.net MVC 表单发布到操作

我在将 ASP.net MVC 表单发布到包含多个参数的操作时遇到问题。问题是只有一些参数正在初始化。

该页面有多个表单,每个表单都由一个单独的控制器支持。

接收 Post 动作的控制器动作如下所示

表格如下所示:

编辑 表单操作 URL

我已经用 MVC Route Debugger 和 VS Debugger 验证了这个 url 与下面的路由匹配。

还有路线

当前网址

当我逐步完成时, Create 方法,

  • 机构ID 的值为1001
  • applicationId的值为0,并且
  • logoutItemDetail具有表单提交的值

关于为什么applicationId参数似乎没有被初始化的任何想法?

编辑

做更多的测试,我发现如果我没有在表单中明确命名控制器/动作

页面中的每个表单都已发布,并且所有正确的参数值。在这种情况下,表单操作值是一个空字符串。如果页面上的每个表单都没有发布,这将是一个可接受的解决方案。