问题标签 [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.
asp.net-mvc-2 - 模型将回发数据绑定到 List 类型的控制器操作参数
我对类型有很强的类型观
外部列表总是有两个列表List<MyViewModelClass>
。对于两个外部列表中的每一个,我想显示一组复选框。每个集合可以有任意数量的选择。
我的视图模型类看起来类似于:
所以最终的视图看起来像:
请选择适用的:
第一组选择:
- x选项1
- x选项 2
- x选项 3
- 等等
第二组选择:
- x第二种选择 1
- x第二个选项 2
- x第二种选择 3
- x第二种选择 4
- 等等
应该显示复选框MyViewModelClass.Area.Name
,并且它们的值应该与MyViewModelClass.Area.Id
. 检查状态当然与MyViewModel.IsChecked
.
问题
我想知道我应该如何使用Html.CheckBox()
或Html.CheckBoxFor()
助手来显示我的复选框?当然,我必须在回发时将这些值返回到服务器。
我希望我的控制器操作如下之一:
如果它使事情变得更简单,我可以创建一个单独的视图模型类型,例如:
以及将我的第一个控制器操作版本更改为:
javascript - 发布 JavaScript 数据对象时模型绑定到 List<>
我正在尝试使用以下内容发布 JavaScript 数据对象:
其中“数据”采用以下结构
这样,站点和面板都正确实例化并与其数据绑定,但 List 对象为空。
现在,我意识到我的“数据”对象的 ConfiguredFactsheetId 属性只是一个 id 值数组。我是否需要指定每个值对应于我的 ConfiguredFactsheet 对象的一个 configuredFactsheetId 属性?如果是这样,我的数据对象将采用类似于
但这显然行不通,因为每次我向对象添加一个新的 ConfiguredFactsheetId 时,它都会覆盖前一个。
我知道如果我建立一个表单的查询字符串我可以做到这一点
但我想将所有内容都包含在一个数据对象中
有什么建议么?我需要更清楚地解释任何事情(可能是所有事情!)吗?
谢谢
戴夫
c# - ASP.NET MVC 中与嵌套子模型和 PartialViews 的模型绑定
我有以下类型和类:
我想在我的视图中编辑Page
实例。Edit.aspx
因为EditableContent
也附加到其他模型,所以我有一个强类型的PartialView
调用ContentEditor.ascx
,并获取一个实例EditableContent
并呈现它。
渲染部分一切正常,但是当我发布时 - 我里面的所有东西都没有ContentEditor
绑定 - 这意味着.Page.Content
null
在 PartialView 上,我使用强类型的 Html Helpers 来执行此操作:
但是因为表单上的输入元素ContentEditor.ascx
没有获得Content
其属性的前缀id
- 值没有绑定到Page
.
我尝试使用松散类型的助手来克服这个问题:
当我处理一个List<T>
属于某物的属性时,它会变得非常难看。然后我必须手动呈现集合索引。
我应该将 Page 和 EditableContent 作为控制器操作的参数吗?:
我错过了什么?
asp.net-mvc - 使用 Ajax.BeginForm 绑定 HttpPostedFileBase
我有一个表单,它使用 HttpPostedFileBase 的默认绑定器绑定模型和文件上传。
这在使用 Html.BeginForm() 时效果很好。但是,我想使用 AJAX 执行相同的操作,因此我将其替换为 Ajax.BeginForm() 相应地更改参数。
该模型仍然正确绑定,但是我无法将文件上传绑定到 HttpPostedFileBase。
这将模型和文件上传绑定:
这仅绑定模型:
控制器动作:
这应该是可能的,如果是这样,我做错了什么?谢谢。
c# - ASP.NET 模型绑定器和基本类型
我的模型继承自一个接口:
该模型:
项目搜索:
以及主视图中的强类型局部视图:
当我提交表单时,该Search
属性没有正确绑定。一切都是空的。动作需要一个ProjectSearch
类型的参数。
为什么Search
不按预期绑定?
编辑
那个行动
asp.net-mvc-2 - 模型绑定失败VS2010 asp.net mvc2
contactAddModel.Search 总是以 null 的形式出现 - 有什么想法吗?
查看声明
视图模型
查看内容
控制器
asp.net-mvc - 从单元测试调用时,ASP.NET MVC 不添加 ModelError
我有一个模型项目
和一个控制器动作
EntryInputModel
当我在单元测试中创建一个,将Description
属性设置为null
并将其传递给操作方法时,我仍然得到ModelState.IsValid == true
,即使我已经调试并验证了newEntry.Description == null
.
为什么这不起作用?
asp.net-mvc - 自定义模型绑定器未触发
这是我的自定义模型活页夹。我在 BindModel 设置了断点,但没有被这个控制器操作触发:
...
我的注册:
// 尝试了这两行
asp.net-mvc - MVC 2、IoC、模型视图和绑定
如果你可以在你的 IoC 实现中注册你的控制器,那么为什么你不能从你的 IoC 容器中创建你的模型视图呢?
我目前正在为控制器使用 Autofac 1.4 进行 IoC 注入,具有以下功能:
我看不到一种方法可以告诉 MVC 将容器用作我的 viewModel 的对象工厂,我是否在某个地方错过了它?
c# - 带有强类型 HTML 帮助器的 POST 上的 ASP MVC2 模型绑定问题
所以我正在考虑从MVC 1.0 迁移到 MVC 2.0 RTM。我想开始遵循的约定之一是使用强类型 HTML 帮助器来生成文本框等控件。
然而,看起来这不会是一个容易的跳跃。我尝试迁移我的第一个表单,替换如下行:
...对于这样的行:
以前,这将使用以下方法签名映射到 POST 上的适当视图模型:
相反,它当前返回一个空对象。我相信这种脱节在于我们将视图模型传递到一个更大的聚合对象中,该对象具有一些页面元数据和其他有趣的东西(因此x.Data.FirstName
而不是x.FirstName)
.
所以我的问题是:使用强类型助手的最佳方法是什么,同时仍然允许 MVC 框架像在原始行中那样将表单集合适当地转换为我的视图模型?有没有办法在不改变我们传递给视图的聚合类型的情况下做到这一点?
谢谢!
更新:所以 bind 属性工作得很好,但我不喜欢我必须将它应用于基本上每个发布的视图模型。我最终改变了继承层次结构,这样我们所有的视图模型都继承自一个包含页面内容和其他元数据的基类,而不是一个名为Data
.