问题标签 [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 - ASP.NET 绑定到 IEnumerable
我将 IEnumerable 类型传递给我的视图,并为每个项目输出一个 html.textbox 以输入详细信息。
当我把它发回我的控制器时,集合是空的,我不明白为什么。
我的获取方法:
风景:
POST 方法:
目前我只是在 post 方法上有一个断点来检查我得到了什么。
asp.net-mvc - 使用自定义模型绑定器对控制器进行单元测试
在我的应用程序中,我有一个自定义模型绑定器,我将其设置为 global.asax 中的 DefaultBinder:
在为控制器编写单元测试时,我需要确保控制器使用自定义模型绑定器,但我不知道该怎么做。
我的测试如下所示:
通过这个单元测试,控制器最终使用了 DefaultModelBinder。我可以在这个测试中添加什么来确保控制器使用自定义模型绑定器?
asp.net-mvc - MVC 视图和控制器:提交表单时重新实例化实体
我们正在处理我们的 MVC 控制器中的实体,这些实体被传递给强类型视图。
当表单发布到视图中时,我们如何使用更新的数据在控制器中重新实例化这些实体?该表单不包含实体的所有字段,因此重新实例化实体所需的所有数据都不会存在于模型绑定中。只会提交部分数据集。
在使用发布的值更新实体之前,我不会根据键值重新加载实体,因为这是 1)效率低下 2)如果我不保留原始 RowVersion 并发字段的值,则防止在实体框架中与我的 POCO 对象进行乐观并发
但我的问题是这是推荐的方式吗?
此问题可能适用于包含未在视图中重新提交的数据并且您不想重新加载实体的任何实体。
谢谢
asp.net-mvc - If property or field is excluded when model-binding, what value will it have?
The question is in the title, actually - let's say I have a simple class like this:
When I use it in action method, like this:
what value will product.ID have inside this action method? Maybe it will be default value for Int32? And null in case ID is reference-type? I'm just interested, didn't find it on the web.
asp.net-mvc - ASP.NET MVC - 除非模型包装在自定义 ViewModel 中,否则表单返回空模型
我的应用程序中有一对视图,它们都为我的一个模型项显示相同的编辑器模板;在两个视图(“添加”和“编辑”)中,“编辑”工作正常,但是当我的控制器操作处理帖子时,“添加”为模型返回 null。
我发现如果我给“添加”视图一个自定义 ViewModel 并调用Html.EditorFor(p => p.PageContent)
而不是简单地调用整个 Model 对象上的 EditorFor() Html.EditorFor(p => p)
,那么表单会返回正确的非空模型,但这会产生与我的客户端脚本和控件 ID(因为现在所有字段都以“PageContent_”为前缀)。我在整个应用程序的几个不同地方使用了相同的编辑器模板技术,而其他人都没有表现出对 ViewModel 的这种奇怪的依赖。
有没有其他人遇到过类似的问题?
编辑视图
行动(工作)
添加视图
行动(失败)
在你哭“重复”之前
这个问题确实与这个有关,但这个问题旨在针对我遇到的具体问题,而不是那里提出的更一般的问题。
asp.net-mvc - 异常导致模型绑定失败
如果我在我的 ASP.NET MVC 2.0 Beta 应用程序中收到一般错误并捕获它。我注意到下次我发布返回到我的帖子的模型始终为空。我需要清除 ModelState 错误还是什么?
asp.net-mvc - MVC 模型绑定
我正在使用链接文本中的 MVC 验证库。我之所以选择这个库,是因为我也在使用 .NetTiers,它使用 MS 企业库验证块生成所有验证属性。
它工作正常,只是模型绑定会自动验证对象并填充验证摘要。我相信这是正常的行为。
验证库还有一个方法,记录如下:
这也很好用。
我的问题是,当使用验证库的方法时,它会重复错误消息。仅使用模型绑定时,错误消息看起来很奇怪。错误在消息中具有属性名称。
所以,我认为我要么需要格式化模型绑定错误消息,要么完全禁用模型绑定。
有什么推荐吗,求助
谢谢。
asp.net-mvc - Tinymce 模型与 ASP.NET MVC 的绑定
有谁知道如何从 ASP.NET MVC 模型中自动填充 tinymce 编辑器?换句话说,我需要使用什么代码来设置tinymce的内容?
编辑:
我的问题是 tinyMCE 隐藏了我的文本框内容。它打开为空白,即使我在浏览器中查看页面的源代码,它也会显示正确的信息(即来自模型)。
这是我的代码:
Javascript:
文字区:
谢谢,杰克
asp.net-mvc - ASP.NET MVC:当您的 ViewModel 是 Collection/List/IEnumerable 时如何维护 TextBox 状态
我正在使用 ASP.NET MVC 2 Beta。我可以使用 Steven Sanderson 的技术(在他的《Pro ASP.NET MVC 框架》一书中)创建一个类似工作流的向导,除了使用 Session 而不是隐藏的表单字段来跨请求保存数据。当我的模型不是集合时,我可以在页面之间来回切换并维护 TextBox 中的值而不会出现任何问题。一个例子是一个简单的 Person 模型:
但是当我传递一个 IEnumerable 时,我无法让它工作。在我看来,我正在尝试遍历模型并为列表中的每个人生成名称和电子邮件的文本框。我可以很好地生成表单,我可以使用我的值提交表单并转到第 2 步。但是,当我在 Step2 中单击 Back 按钮时,它会将我带回 Step1,并带有一个空表单。我之前填充的字段都不存在。一定有什么我错过了。有人可以帮帮我吗?
这是我的观点:
这是我的控制器:
asp.net-mvc - 表单中的 asp.net 图像和 HTTPPost
你好,
我确定我在这里遗漏了一些非常明显的东西,所以请原谅我。
- 我正在使用MVC 2 Beta,我有一个模型,它有几个属性、字符串、整数等。通常的东西。
- 它还有一个包含图像的字节数组。
- 我的控制器上有一个编辑操作方法,装饰有 [HTTPGet] 属性。
- 该方法将模型传递给视图,该视图具有绑定到各种字符串属性的常用文本框和绑定到字节数组/图像的 img 元素。
这一切都正常工作,我看到了包括图像在内的所有数据。这都是非常标准的东西。
但是,当用户将表单提交到我的 [HTTPPost] 版本的操作方法时,该方法接受相同的模型作为其参数,图像属性为空。即图像属性似乎不是模型绑定的一部分。
在正常的事件过程中,我们会进行一些验证并将模型传递回要呈现的视图,以便用户可以查看编辑是否成功。但只是将模型“按原样”传回 - 视图不会再次渲染图像,因为它不再在模型中。
我知道我可以再次(从数据库或任何地方)获取图像并将其放回模型中,然后再将其传递给视图,但这是正确的策略还是我错过了什么?
问候,西蒙