问题标签 [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 投票
3 回答
1369 浏览

asp.net-mvc - AutoMapper 将域模型展平,但它会做相反的事情吗?如果不是,那是什么?

我一直在阅读 AutoMapper,因为我在这里回答了我之前的一个问题。

它说 AutoMapper 将复杂的域模型展平,但我需要一些相反的东西。我需要将我的视图模型(扁平域模型)连接到复杂的域模型,以便我可以快速将视图模型转换为域模型。

有没有类似于 AutoMapper 的东西,它采用视图模型并将其变成复杂的域模型?

0 投票
3 回答
5797 浏览

asp.net-mvc - 使用复杂数据类型的集合调用 UpdateModel 会重置所有非绑定值吗?

我不确定这是 DefaultModelBinder 类中的错误还是什么。但是 UpdateModel 通常不会更改模型的任何值,除了它找到匹配的值。看看以下内容:

发生的情况是 UpdateModel 创建新的Person 对象,从 ValueProvider 分配它们的 Name 和 Age 属性并将它们放入参数 List<> 中,这使得其余属性设置为其默认初始值(例如 Id = 0)所以什么是在这里进行吗?

0 投票
3 回答
72190 浏览

html - 多选列表如何与 ASP.NET MVC 中的模型绑定一起使用?

如果您在 ASP.NET MVC 中将选择列表设置为多个,那么模型绑定如何工作?

它为您选择的项目返回什么,一个数组?

0 投票
3 回答
2521 浏览

asp.net-mvc - ASP.NET MVC 模型在同一页面上绑定相关实体

这个问题已经让我发疯了几个小时......

在我的域中,我有 2 个彼此相关的实体,Sku并且Item. 每个 sku 可以有许多项目。

我正在构建一个页面,允许最终用户同时更新 sku 上的一些字段和每个项目上的一些字段。

我有一些控制器代码可以通过同时接受 aSku和 an EntitySetofItem然后将其分配ItemsSku.

这行得通,但是我DefaultModelBinder注意到Item除了Sku. 绑定时,会调用Skusetter ,并且绑定器甚至会传入具有正确值的水合集合。但是,在调用 之后,就是。这就是为什么我必须重新分配控制器代码中的项目。我期待这些物品被活页夹转移到收藏品中。这应该消除每个项目的额外行程,因为可以删除我的控制器方法上的参数。为什么这不起作用?ItemsItemsitems.AssignItems.Count0Itemsitems

0 投票
1 回答
84 浏览

entity-framework - 使用实体框架持久化模型绑定对象

我会尽量保持简短和简洁。

我的控制器在这里...

myCustomObject 看起来很棒的地方。但是,如果我想使用实体框架保存它,我需要做这样的事情......

有没有办法可以避免做这个映射练习?

0 投票
1 回答
704 浏览

c# - Action with set of fixed parameters in url and a set of optional parameters either from post or from querystring

In my route collection I have

routes.MapRoute( "Recalculate", "{siteLanguage}/Formula.mvc/relcalculate/{identifierString}/{formulaId}/{wratio}/{customRecalcString}", new { controller = "Formula", action = "Recalculate", wratio = "", customRecalcString = "" } );

The action it maps to is

As you can see there are severa paremeters that are not in the route description. These are optional parameters.
When I come in with a POST, the values I put in my form are properly mapped to these parameters.
When I enter with a GET however, the variables are added to the querystring:

But when arriving at the action, the parameters and the querystring are empty...

Any ideas?

Edit
It seems the querystring just dissapeared halfway.
Altered OP to reflect this
Edit2
After further investigation it appears that once again it comes down to asp.net-mvc's encoding algorithms that seem to fail (or is it me?) If I fill in the URL in the browser address bar, it works perfectly. Only when the string is used as an action="" attribute value the querystring dissapears. If I'm not mistaking the '&' of the querystring should be encoded.

Why isn't Url.RouteUrl() doing this?
Why is Url.Encode() giving me all kinds of bull? How can I encode only the querystring part without encoding the values?
Edit3
I surrounded the action with Html.Encode() which I should have done from the start off course. Now the page validates again.. but to no avail.
Edit4
Found it!
Basically it's this HTML that's failing

As soon as I change the method of the form from get to post, everything works out fine.
That were 2 hours well spent!
Update
In response to comment:
With regard of non-disclosure paranoia I will leave out some stuff, but here's the gist of the page:

I tend to define the action urls at the start of the page so I can find it easely and it doesn't litter my page. Also, I know the table is blasphemy, but with the time I've wasted yesterday it will have to do for the time being. I'll have to pay the programmer's tax in a later cycle.

0 投票
1 回答
12917 浏览

c# - 用于泛型类型的 ASP.NET MVC 模型绑定器

是否可以为泛型类型创建模型绑定器?例如,如果我有一个类型

有什么方法可以创建适用于任何类型的 MyType 的自定义模型绑定器?

谢谢,内森

0 投票
2 回答
845 浏览

asp.net-mvc - 模型仅绑定所选项目的 IList

我有一个动作方法设置:

在我看来,还有一张产品表。我已经让模型绑定工作,因此在提交时我可以填充products列表。但我想只用通过复选框选择的产品填充它。

我想我可以通过将操作方法​​更改为:

并将复选框列表传递给,toDelete但我真的很想尽可能避免更改方法签名。

有没有办法只传递选定的项目?还是我必须编写一个自定义 ModelBinder?

0 投票
2 回答
631 浏览

asp.net-mvc - 使用 MVC.NET 模型绑定,视图页面模型和绑定模型必须是同一个类吗?

(即,您传递给视图的模型和表单发布后返回的模型。)

如果不是,那么这样做会更好吗?如果您收集的数据超出了视图页面模型的属性,该怎么办?

0 投票
1 回答
10691 浏览

asp.net-mvc - ASP.NET MVC 在一个表单上更新对象列表?(模型绑定到列表)

关于更新 asp.net mvc 中的项目列表的快速问题。

基本上我有一个返回对象集合的编辑操作方法(顺便说一下,它的表结构如下所示'testID,assetID,Result' - 一个链接表)。

我基本上希望这些项目在表单中一个接一个地显示并且能够编辑它们。表单应该回传,modelbinder 会发挥它的魔力。但是,这并不容易。

我已经在网上搜索过,似乎大多数关于这些东西的信息似乎有点过时了。我遇到过这篇文章,很久没有更新了,这篇文章似乎暗示你不应该绑定到已经存在的更新列表,并且在使用 EF 或 Linq 时会出现问题到 Sql(我就是)。

有没有一种简单的方法可以实现我想要的?发布版本中列表模型绑定的状态是否发生了变化?

更新 - 更接近一点......

这是我的编辑方法:

我的表格:

还有我的编辑 POST 方法:

它当然不完整,但它不会更新当前状态的任何内容。我在这里错过了一个技巧吗?结果填充了更新的实体,所以我不确定它为什么不更新......

更新2:所以,我开始认为模型活页夹不能做这样的事情。所以,我采取了一种更老套的方式来做事。如果有人能发现这个问题,请告诉我。仅供参考 - 此表单将使用 AJAX 获取,因此我不返回视图,而是返回简单消息。这是新代码:

然后我在我的存储库上调用 Save。

提前致谢