问题标签 [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.

0 投票
1 回答
1251 浏览

asp.net-mvc - @Html.BeginCollectionItem 与 IValidatableObject 和 MemberName 不匹配

在使用Steven Sanderson 的@Html.BeginCollectionItem助手时,我正在尝试使用IValidatableObject接口验证服务器端的集合项。

我想防止用户选择两个相等的项目。例如,给定用户所说的习语列表,可以回发这些值:

Validate实现如下所示:

问题在于MemberName传递给的 ("Idiom")与字典中的现在ValidationResult不同,因为 Steven 的助手使用's 并且看起来像这样:MemberNameModelStateGuid

如您所见Idiom != [Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].Idiom

在最好的情况下,我必须有一种传递方式,例如[Idioms[83c2c6db-0157-42f3-bf3f-f7c9e6bc0a37].IdiomMemberName但我不知道如何从 the 中获取此信息,validationContext或者即使有可能。无论如何,这必须是动态的。

你知道有什么办法可以克服这个吗?

0 投票
5 回答
18115 浏览

c# - System.Web.Mvc.HtmlHelper不包含定义

我正在尝试使用Steve Sanderson关于编辑可变长度列表的博客文章。我已经通过 NuGet 包管理器安装了 dll,并确保命名空间在Views/web.config文件中。但是,当我尝试编写using语句时出现以下错误。

视图/Web.config

局部视图(更新)

控制器(以防万一)

0 投票
1 回答
8823 浏览

c# - AccessViolationException 未处理

我正在尝试使用Steve Sanderson 的博客文章在我的 ASP MVC 3 视图中编辑可变长度列表。该项目构建良好,但是每当呈现部分视图时,程序就会因using(Html.BeginColletionItem()以下错误而爆炸:

这是完整异常的屏幕截图

在此处输入图像描述

下面的完整堆栈跟踪

局部视图

看法

控制器

代理关系代码

编辑

我已经能够让演示在我现在使用的解决方案之外的项目中工作,所以它显然与这个工作区中的一些 dll 有关。但是,现在我已经超出了我的工资等级,因为我不确定如何调试这样的东西。以下是在 Visual Studio 抛出AccessViolationException. 在抛出的异常之间有很多信息,如果有人需要,请告诉我。

更新

通过在项目的调试器菜单中选择“本机代码”选项

在此处输入图像描述

我现在收到一条详细的错误消息:

在此处输入图像描述

最后,按照下面的建议切换到 IIS Express,我仍然收到AccessViolationException. 这是我用来启用 IIS 进行调试的设置(在项目属性下)

在此处输入图像描述

这是错误消息

在此处输入图像描述

调用堆栈:

在此处输入图像描述

0 投票
1 回答
1767 浏览

asp.net-mvc - MVC BeginCollectionItem 隐藏索引
  • 我正在使用BeginCollectionItem HTMLHelper。它起到了一种魅力,但它弄乱了我正在使用的布局。BeginCollectionItem 呈现一个<ul><li>隐藏它的隐藏字段(其中包含唯一索引)。因此,您收藏中的每一“行”都会生成一个<li>.

    当您使用 BeginCollectionItem 填充表时,它会在<table>.

    问题:我不希望这些内容可见<li><ul>因为无论如何这些内容都是“隐藏字段”。我怎样才能做到这一点?

    谢谢您的帮助,

    0 投票
    0 回答
    1308 浏览

    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

    0 投票
    1 回答
    231 浏览

    collections - BeginCollectionItem() 只为 PostBack 提供最后附加的项目

    查询订单视图模型

    InquiryOrderIndex 视图和添加项目的脚本

    DetailEditorRow PartialView

    返回 PartialView 的 ActionResult

    'GET' 的操作结果

    'POST' 的 ActionResult

    当我单击添加按钮时,我能够动态添加项目。但是对于 PostBack 它只给了我最后附加的项目。我通过在 post ActionResult 上放置一个断点来检查它。我怎样才能获得 PostBack 的整个集合?我哪里做错了?所有帮助表示赞赏。谢谢!

    0 投票
    1 回答
    1365 浏览

    asp.net-mvc-5 - 将列表传递给部分视图,BeginCollectionItem()

    我想将一个列表传递给具有 BeginCollectionItem() 的 PartialView。这是代码,

    InquiryOrderViewModel

    InquiryComponentDetail模型

    InquiryOrderIndex视图和脚本一次渲染多个项目

    _DetailEditorRowPartialView 为 ddls 提供并在主class03视图中附加了它。(这只是为了向您展示什么是class03

    _ComponentDetailsPartialView 渲染项目(一个列表已被一次传递)

    一次传递列表并返回 PartialView 的 ActionResult

    ActionResult 为GET

    ActionResult 为POST

    当用户从下拉列表()中选择一个项目时class03,与该项目相关的项目将使用 PartialView(_ComponentDetails')呈现到视图并附加。然后用户从另一个 ddl( class03) 中选择另一个项目,相关项目被渲染并附加在之前附加的项目之后。用户可以这样继续。

    渲染和附加项目工作正常。但是对于 PostBack,即使我正确地获得了列表中的项目数(我通过在POSTActionResult 上放置一个断点来检查它),所有项目内容都显示空值。请以正确的方式指导我实现这一目标。所有帮助表示赞赏。谢谢!

    0 投票
    1 回答
    1260 浏览

    c# - 带有 BeginCollectionItem 的嵌套列表列表

    我正在使用 BeginCollectionItem 将项目添加到列表的内部列表中。

    我的问题与以下内容非常相似:Nested BeginCollectionItem,但是包含列表的对象本身也是一个列表(因此在引用的示例中, tt 是一个列表,而不仅仅是对象的一个​​实例)。

    我的模型是:

    因此,在我看来,我有一个代表整周时间表的表格,因此有一个天数列表(公共列表天数),然后每天都有一个要预订的小时列表(公共列表小时数)。

    我的视图如下所示:WeeklyTimeSheet.cshtml

    TimeSheetDayViewModel.cshtml(在编辑器模板中)

    TimeBookingViewModel.cshtml(编辑器模板)

    在回帖到服务器 TimeBookingViewModel 对象未填充。有什么建议么?

    0 投票
    0 回答
    558 浏览

    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

    但是当我单击创建按钮名称时,描述会绑定好,但不会绑定权限。见下文。

    RolePermission_Not_Binding

    知道会发生什么吗?

    0 投票
    1 回答
    1346 浏览

    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

    在我的主视图中,我正在尝试添加新行,如下所示

    问题是,看起来行是在表格主体之后添加的,而不是在最后一行之后的主体内部。

    我遇到的另一个问题是新行列不与现有的第一行对齐,也没有选择应用于现有第一行中的控件的样式表。

    下面是我到目前为止得到的截图,我正在努力用现有的第一行来点亮这些新行。

    表格截图