问题标签 [begincollectionitem]
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 - @Html.BeginCollectionItem 与 IValidatableObject 和 MemberName 不匹配
在使用Steven Sanderson 的@Html.BeginCollectionItem助手时,我正在尝试使用IValidatableObject接口验证服务器端的集合项。
我想防止用户选择两个相等的项目。例如,给定用户所说的习语列表,可以回发这些值:
Validate
实现如下所示:
问题在于MemberName
传递给的 ("Idiom")与字典中的现在ValidationResult
不同,因为 Steven 的助手使用's 并且看起来像这样:MemberName
ModelState
Guid
如您所见Idiom != [Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom
。
在最好的情况下,我必须有一种传递方式,例如[Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom
,MemberName
但我不知道如何从 the 中获取此信息,validationContext
或者即使有可能。无论如何,这必须是动态的。
你知道有什么办法可以克服这个吗?
c# - System.Web.Mvc.HtmlHelper不包含定义
我正在尝试使用Steve Sanderson关于编辑可变长度列表的博客文章。我已经通过 NuGet 包管理器安装了 dll,并确保命名空间在Views/web.config
文件中。但是,当我尝试编写using
语句时出现以下错误。
视图/Web.config
局部视图(更新)
控制器(以防万一)
c# - AccessViolationException 未处理
我正在尝试使用Steve Sanderson 的博客文章在我的 ASP MVC 3 视图中编辑可变长度列表。该项目构建良好,但是每当呈现部分视图时,程序就会因using(Html.BeginColletionItem()
以下错误而爆炸:
这是完整异常的屏幕截图
下面的完整堆栈跟踪
局部视图
看法
控制器
代理关系代码
编辑
我已经能够让演示在我现在使用的解决方案之外的项目中工作,所以它显然与这个工作区中的一些 dll 有关。但是,现在我已经超出了我的工资等级,因为我不确定如何调试这样的东西。以下是在 Visual Studio 抛出AccessViolationException
. 在抛出的异常之间有很多信息,如果有人需要,请告诉我。
更新
通过在项目的调试器菜单中选择“本机代码”选项
我现在收到一条更详细的错误消息:
最后,按照下面的建议切换到 IIS Express,我仍然收到AccessViolationException
. 这是我用来启用 IIS 进行调试的设置(在项目属性下)
这是错误消息
调用堆栈:
asp.net-mvc - MVC BeginCollectionItem 隐藏索引
我正在使用BeginCollectionItem HTMLHelper。它起到了一种魅力,但它弄乱了我正在使用的布局。BeginCollectionItem 呈现一个<ul>
并<li>
隐藏它的隐藏字段(其中包含唯一索引)。因此,您收藏中的每一“行”都会生成一个<li>
.
当您使用 BeginCollectionItem 填充表时,它会在<table>
.
问题:我不希望这些内容可见<li>
,<ul>
因为无论如何这些内容都是“隐藏字段”。我怎样才能做到这一点?
谢谢您的帮助,
asp.net-mvc - 为什么 HtmlHelpers.BeginCollectionItem 向我的项目添加 guid?
功能:每次用户选择更新视图上的 PersonList 时,我都想从 jquery 更新 viewModel。
所以,如果我有一个班级人:
我有一个复杂的视图模型,其中包含我运行的视图中的人员列表:
部分观点:
每次用户添加新人时,我都会发送 ajax 请求和 asp 以获取已经必须填充个人数据的 partialView(_PersonList)。
在 ajax 请求结束后,部分内部的年龄和姓名字段如下所示:
这很好用,但是如果用户选择添加 20 人,那么我必须向服务器发出 20 个请求,这是我想避免的。
这就是为什么我尝试将人员列表发送到部分视图。
我改变了 partialView :
但是现在我得到列表后的输入字段如下所示:
当我发布表单时,它不被识别为视图模型的一部分。所以问题是从无处添加了一个 [0] 到 name 和 id 属性
我怎样才能防止这种行为?
如果我使用 foreach id 看起来像:
item.Products[4456a32b-eb06-4665-be23-31666d72824e].item.Uid
collections - BeginCollectionItem() 只为 PostBack 提供最后附加的项目
查询订单视图模型
InquiryOrderIndex 视图和添加项目的脚本
DetailEditorRow PartialView
返回 PartialView 的 ActionResult
'GET' 的操作结果
'POST' 的 ActionResult
当我单击添加按钮时,我能够动态添加项目。但是对于 PostBack 它只给了我最后附加的项目。我通过在 post ActionResult 上放置一个断点来检查它。我怎样才能获得 PostBack 的整个集合?我哪里做错了?所有帮助表示赞赏。谢谢!
asp.net-mvc-5 - 将列表传递给部分视图,BeginCollectionItem()
我想将一个列表传递给具有 BeginCollectionItem() 的 PartialView。这是代码,
InquiryOrderViewModel
InquiryComponentDetail
模型
InquiryOrderIndex
视图和脚本一次渲染多个项目
_DetailEditorRow
PartialView 为 ddls 提供并在主class03
视图中附加了它。(这只是为了向您展示什么是class03
)
_ComponentDetails
PartialView 渲染项目(一个列表已被一次传递)
一次传递列表并返回 PartialView 的 ActionResult
ActionResult 为GET
ActionResult 为POST
当用户从下拉列表()中选择一个项目时class03
,与该项目相关的项目将使用 PartialView(_ComponentDetails'
)呈现到视图并附加。然后用户从另一个 ddl( class03
) 中选择另一个项目,相关项目被渲染并附加在之前附加的项目之后。用户可以这样继续。
渲染和附加项目工作正常。但是对于 PostBack,即使我正确地获得了列表中的项目数(我通过在POST
ActionResult 上放置一个断点来检查它),所有项目内容都显示空值。请以正确的方式指导我实现这一目标。所有帮助表示赞赏。谢谢!
c# - 带有 BeginCollectionItem 的嵌套列表列表
我正在使用 BeginCollectionItem 将项目添加到列表的内部列表中。
我的问题与以下内容非常相似:Nested BeginCollectionItem,但是包含列表的对象本身也是一个列表(因此在引用的示例中, tt 是一个列表,而不仅仅是对象的一个实例)。
我的模型是:
因此,在我看来,我有一个代表整周时间表的表格,因此有一个天数列表(公共列表天数),然后每天都有一个要预订的小时列表(公共列表小时数)。
我的视图如下所示:WeeklyTimeSheet.cshtml
TimeSheetDayViewModel.cshtml(在编辑器模板中)
TimeBookingViewModel.cshtml(编辑器模板)
在回帖到服务器 TimeBookingViewModel 对象未填充。有什么建议么?
asp.net - 无法使用带有嵌套集合的 BeginCollectionItem 从视图正确绑定到模型
我正在关注Steven Anderson的这篇博客Editing a variable length list, ASP.NET MVC 2-style并开始为我的 ASP.NET MVC 项目使用 Html.BeginCollectionItem()。
该项目是关于将多个权限与角色相关联。它将有一个角色页面(视图),用户可以在其中选择通过从下拉列表中选择权限之一来添加权限。用户还可以通过单击“添加”按钮来添加这些权限下拉列表。“添加”将在页面上动态添加新的下拉列表控件。Remove 将删除最后一个下拉列表。
我面临的问题是绑定嵌套集合。我在下面使用了 RolePermissions 列表,该列表又是 RolePermissionViewModel 的列表。
请参阅下面的屏幕截图。
角色控制器:我有硬编码的样本数据进行测试。
角色视图:
RoleViewModel : RolePermissions 是一个 RolePermissionViewModel 列表。
_PermissionPartial.cshtml
但是当我单击创建按钮名称时,描述会绑定好,但不会绑定权限。见下文。
知道会发生什么吗?
jquery - 使用 jQuery 在 ASP.NET MVC 3 中使用 BeginCollectionItem 向 html 表动态添加行时的行和列对齐
我的主视图中有以下 html 表定义
我希望能够使用此处解释的 BeginCollectionItem 概念添加新行http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/并使用与 mvc 中的模型连接的 jquery 在表中添加行
下面是我想用作添加新行的模板的部分视图的定义。@using MyProject.Utilities @model MyProject.ViewModel.ReportDetailsViewModel
在我的主视图中,我正在尝试添加新行,如下所示
问题是,看起来行是在表格主体之后添加的,而不是在最后一行之后的主体内部。
我遇到的另一个问题是新行列不与现有的第一行对齐,也没有选择应用于现有第一行中的控件的样式表。
下面是我到目前为止得到的截图,我正在努力用现有的第一行来点亮这些新行。