问题标签 [modelbinder]

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 回答
514 浏览

asp.net-mvc-3 - MVC:是否可以在一个模型上拥有一个自定义 ModelBinder 和默认绑定器?

我想使用我的自定义绑定器来处理构造函数(必要的),然后让默认的模型绑定器正常填充其余属性。

编辑:自定义的当然会首先运行。

0 投票
3 回答
10582 浏览

c# - MVC 3.0 ModelBinder bindingContext.ValueProvider.GetValue(key) 在集合中绑定时返回 null

我是使用自定义 ModelBinders 的新手,我一直在环顾四周,但找不到与此特定案例相关的任何帖子。

我有一个像这样的实体:

在视图中,我将其绑定如下:

我在 DynamicDataItems 类中有特殊信息,我想以特定方式检索这些信息,因此我创建了自己的模型绑定器。

bindingContext.ModelName 包含“DynamicDataItem[0]”。

如果我执行 bindingContext.ValueProvider.ContainsPrefix(key),它返回 true,但是当我执行 GetValue(key) 时,它返回 null。如果我检查 ValueProvider 包含的内容,我会发现有几个项目的键以“DynamicDataItem [0]”开头。我如何从当前正在绑定的项目(“DynamicDataItem[0]”)的所有字段中检索信息?我应该一一检索它们吗?像这样:

我将不胜感激您能给我的任何指导。

0 投票
1 回答
264 浏览

asp.net-mvc-3 - 如果我将对象传递给模型绑定器,如何防止某些值被更新

我有一个名为 Visit 的对象,具有以下属性:-

备注 DoctorID VisitTypeID CreatedBy Date VisitID PatientID StatusID Timestamp

在编辑视图中,用户只能编辑以下两个属性:- 注意 DoctorID 所以我在编辑视图中将其他属性添加为隐藏字段,如下所示:-

我必须在我的编辑视图中包含所有属性,因为我将访问对象传递给我的后期编辑操作方法,如下所示:-

因此,我担心上述方法的原因如下:- 1. 攻击者可能会修改隐藏字段的值。2. 我无法在我的 Visit 模型类中定义 [Bind(Include = "....")]。

所以我无法决定是否应该继续使用这种方法,或者有更好的方法可以遵循

0 投票
1 回答
1019 浏览

asp.net-mvc - .NET MVC 不显眼的验证和自定义模型绑定器

我有一个简单的 MVC 网站,它显示一个用于编辑目的的 jquery 对话框。在此对话框中是一个文本区域,它接受用户可以输入的以逗号分隔的技能列表。提交后,我的模型绑定器将其转换为List。这是我的模型活页夹的代码

这是我的部分视图的代码

我所有的简单验证(例如 [Required])都在客户端工作。模型绑定器验证也有效,但是没有显示错误消息。我假设我在 javascript 中遗漏了一些东西来注册错误,但我不知道它是什么。任何帮助,将不胜感激。谢谢。

这是问题的屏幕截图

在此处输入图像描述

0 投票
2 回答
2874 浏览

asp.net-mvc - 模型绑定器不会将 json 转换为 IEnumerable

我通过 jquery ajax post 将 json 数据发送到我的控制器操作。我操作中的 IEnumerable 始终为空。

我的 json 是错误的,还是模型绑定器没有将 json 转换为 IEnumerable ?

0 投票
1 回答
1537 浏览

asp.net-mvc-3 - bindmodel vs createmodel asp mvc 3

我正在用 Asp 开发我的第一个应用程序。我正在使用环境 Asp.NET MVC 3。我有一个具有单个参数的控制器操作。该参数的类型是复杂对象。

我正在使用 ModelBinder 类。但我不确定是否应该覆盖BindModel函数或CreateModel函数。

这两个功能之间有什么区别以及它们何时被rooter完全使用。

谢谢 !

0 投票
2 回答
233 浏览

javascript - 用于主干.js 集合的主动过滤器

我的骨干收藏有一点问题。我只想显示 6 个模型,并且总是最新的 6 个。我使用 CollectionBinder (Backbone.ModelBinder) 来渲染和显示我的收藏,并使用 RailsFayeSubscriber 将它们与服务器同步。

问题是我不知道如何始终保持集合 6 个模型大。我尝试添加一个 this.on("add") 并在那里使用 .first(6) 来保留我想要的 6 个模型,但问题是我认为 CollectionBinder 或 RailsFayeSubscriber 也有 add-trigger 并抛出我关于集合中缺失模型的错误。

最好的办法是拥有比较器之类的东西,它总是对模型进行排序,但在这种情况下,某种有源滤波器总是保持 6 个模型大。

有任何想法吗?

0 投票
1 回答
209 浏览

asp.net-mvc - 自定义 IModelBinder 中的 NullReferenceException

我正在尝试在 .NET 4.5 中使用 MVC4 实现我自己的自定义 ModelBinder,但遇到了最奇怪的错误。我的代码看起来大约。像这样

表视图模型模型:IModelBinder

NullReferenceException 已在第一行抛出,但实际上没有一个属性为 null(它们都出现在 intellisense 调试中)。在绝望中,我决定删除一些属性,以便更好地了解引发异常的位置,我发现罪魁祸首是 Params 属性。真正奇怪的是,查询字符串中的所有键都列在调试窗口中,但仍然抛出异常。我真的需要一些帮助这个人!

谢谢。

0 投票
1 回答
306 浏览

ajax - MVC3 NuGet PagedList 表单数据

我创建了一个具有 2 个属性的模型,一个可选模板的分页列表和一个可选版本的分页列表。

这个想法是视图将允许您选择多个版本和模板,以便当您发布表单时,它将为所选模板和版本的每个可能组合创建新实例。

我遇到的问题是处理来自 nuget 的页面列表。我读到不可能使用普通的 actionlink 发布,所以我尝试了一个 Ajax.Beginform 和 pagedlist Next 是一个 ajax.actionlink 并设置了 POST 的 httpmethod。

不幸的是,当它到达我为此模型指定的模型绑定器时,控制器上下文在表单的键中没有任何内容。

ajax beginform 部分中的复选框如下所示:

我是在错误的地方寻找模型绑定器中的反序列化数据,还是我对 html 做错了什么?

非常感谢!

0 投票
1 回答
216 浏览

asp.net-mvc-4 - MVC 模型绑定列表 ID 和名称问题

嗨,当我使用 ajax 调用获取局部视图时,我在获取正确的 ID 和名称时遇到了问题。

我想要像 "Blocks_0__Items_0__Id" 这样的 id。这些是使用 for 循环呈现的,因此主页:

然后 BlockView 对使用和 editorfor 的项目进行相同的列表渲染。for 循环使 Id 和名称正确。

但是,如果我想将项目模板呈现为部分视图,我将得到的自然是没有块和项目部分。

为了解决这个问题,我调用了一个空的主页,该主页呈现一个始终包含一个项目的块。但这意味着对于我想通过 ajax 插入并由 modelbinder 读取的任何内容,我必须创建 2 个额外的局部视图!

解决方案 2 我认为是使用 ViewData.TemplateInfo.HtmlFieldPrefix 方法并设置它。但是,由于我有一个列表,其中包含一个列表,这是不可能的。我可以摆脱其中一个部分视图并使用: ViewData.TemplateInfo.HtmlFieldPrefix = "Block"

我看到了一个名为 Html.BeginCollectionItem("nameofitem") 的 mvc 1 和 2 Html 助手,但它不再存在。

有什么好主意吗?