问题标签 [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.
c# - 正确使用 Html.BeginCollectionItem
我是 MVC/Razor/Web 的新手,希望最终能够编辑项目列表,现在我只是尝试使用 Html.BeginCollectionItem 显示这些项目,但它不起作用(没有错误,只是不显示我的物品。)我在下面列出了我的代码:
模型:
控制器:
主视图:
局部视图:
需要注意的一件事是我确实进入了我的主视图,并且“项目”中有数据,但部分视图不显示文本框等。我是网络代码的新手,所以我希望我错过了一些简单的东西(我看过很多教程,也许我只是忽略了一些东西)
如果我可以提供任何其他信息,请告诉我。
asp.net-core - 在 ASP.net Core 中使用 BeginCollectionItem
我不能在 asp.net 核心中使用 Steve Anderson 的 BeginCollectionItem。使用时,我的局部视图出现错误
'HtmlHelper' 类型是在未引用的程序集中定义的。您必须添加对程序集“System.Web.Mvc,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”的引用。
是否有另一种方法可以在 ASP.net 核心中实现 BeginCollectionItem 的功能?
javascript - 使用 Html.BeginCollectionItem 帮助器传递集合的部分视图
我做了一个小项目来理解 Stephen Muecke 的答案:Submit same Partial View called multiple times data to controller?
几乎一切正常。javascript 从局部视图中添加新字段,我可以通过控制器方法为局部视图插入的“临时”值来判断它们已绑定到模型。
但是,当我提交新字段时,AddRecord() 方法会引发异常,表明模型没有被传入(“对象引用未设置为对象的实例”)。
此外,当我查看页面源代码时,BeginCollectionItem 助手正在插入一个隐藏标记,因为它应该在显示预先存在的记录的主视图中的表周围,而不是在 javascript 添加的新字段周围。
我究竟做错了什么?我对此很陌生,所以感谢您的耐心等待!
我的主要观点:
我的部分观点:
我的模型:
在我的控制器中:
jquery - 在同一视图上从集合中添加和删除项目的视图
我正在创建一个视图,允许用户以客户想要的特定方式添加和删除列表中的对象。用户必须能够在提交之前在页面上添加或删除多个表单。当页面发布时,它需要显示列表中已有的内容,可选择删除每个项目,并允许用户在再次提交之前添加/删除更多对象。
我可以使用 JQuery 和 Partial View 让用户在提交之前添加或删除新表单。我想不通的是如何提供一个按钮来从以前的提交中删除列表中已经存在的对象。
谁能帮我解决这个问题?这将不胜感激。
这是我到目前为止所知道的。在我看来:
带有将数据添加到新对象的表单的部分视图:
我的控制器:
我的视图模型:
ajax - Asp.net mvc 更新由模态弹出窗口提交的父页面中的下拉列表
我有一个加载正在使用的部分视图的主页
Html.BeginCollectionItem("员工")
因为我使用的是 jQuery 选项卡。(因此用户可以添加更多员工表单)
在我的 Employee 部分视图中,有一个用于选择国家/地区的下拉列表,它还有一个链接,可以弹出一个添加新国家/地区的模式。在这里,我想要做的是,在提交模式并关闭后,我希望立即刷新下拉列表,以便用户可以看到新的更新列表。
当用户添加更多选项卡时动态更改下拉列表的 ID 时,如何做到这一点?
公司.cshtml:
员工.cshtml:
新国家.cshtml:
已编辑
在 Stephen 给我提示解决上述问题之后的另一个问题是,模态仅在 tab1 中弹出。我怎样才能更新所有选项卡中的下拉列表?
asp.net-mvc - ASP.NET MVC + 使用 jQuery Tab 检索一对多关系
我有一个表单,其中有一个部分使用BeginCollectionItem生成的jQuery 选项卡。这是通过一对多关系完成的。我可以在表单中创建多个选项卡并可以提交它(newForm.cshtml)。但是,当涉及到编辑时,尤其是当我必须检索表单时(多个选项卡填充了信息),我有点卡在这里。
所以场景很简单。我有一个显示提交表单列表的表格,并且可以单击一行的编辑链接来编辑检索到的表单。此时,我只能在 NewForm 中检索 Name,但无法检索与 Family 选项卡关联的其他 Names。
模型:
编辑.cshtml:
家庭.cshtml:
控制器:
如何检索与 newForm 关联的家庭(选项卡)的信息?
编辑
我已经反映了斯蒂芬的建议并且检索多个家庭正在工作,但现在我面临另一个问题,我无法为每个家庭创建每个选项卡。我尝试使用我的代码,但它创建了选项卡,但它被放置在一个奇怪的地方。有什么建议么?
javascript - MVC 5 - 从使用 BeginCollectionItem 的局部视图注册 JavaScript 事件
我有一个部分视图,如下所示:
这嵌入在父视图中,例如:
一切正常,但正如您从部分视图中看到的那样,我想使用数据列表添加一个可搜索的框,所以我在我的控制器中添加了一个方法:
然后添加一些使用 AJAX 的 javascript 来填充这个数据列表:
此 javascript 包含在父视图中,该父视图也嵌入了部分视图。但是我添加了一个工作记录并在输入框中输入了一些内容,尽管它的 id 为project
.
我的问题是,如何从父视图注册部分视图中发生的事件;或者如果我可以在部分视图中嵌入javascript文件来解决这个问题?更困难的问题是,如何在添加工作时防止 id 重复BeginCollectionItem
?因为添加多行会添加多个project
id 输入框。
更新
@Stephen 极大地帮助我解决了这个问题,我<datalist>
从部分视图中删除了标签并将其放在主视图中,并使用类而不是 id。然后我把我的 JS 改成这样:
这样我就可以使用我的 AJAX 调用来搜索$(this)
输入框。我遇到的另一个问题是查看单击了哪个输入框,因此我可以更新其他一些内容,为此我使用了:
哪个电话:
这有点违反直觉,因为我正在进行 2 个 AJAX 调用,但第二个调用不会很重,因为它要求特定元素。
c# - MVC 远程验证正在将模型添加到 url
我对一个字段进行了远程验证,它会触发,但我收到一个 500 错误,指出控制器方法中的参数为 null 为 null。实际发生的是模型名称被添加到 url,这使得它无法找到方法。
例子:
学生模型
由于某种原因,验证触发时创建的 url 是:
注意学生。在网址中。
我尝试了几种不同的方法签名:
第一个返回 500 错误(空参数)。第二个通过 Student 模型进入他的方法,但第一个和最后一个为空。
我确信这正在发生,因为我正在使用 Html.BeginCollectionItem 帮助器来构建动态列表,以便用户可以在同一页面上输入多个学生。BCI 帮助程序的一部分是它使用唯一索引重命名每个字段。
所以我不认为我可以阻止 url 拥有模型。在里面。是否可以有模型。在方法参数名称中?我试了,报错。
jquery - 使用 BeginCollectionItem 显示/隐藏逻辑
我正在使用 BeginCollectionItem 并试图弄清楚如何让每个单独的集合值来执行有条件的显示/隐藏逻辑。例如,如果我有以下剃刀标记:
如果选择了“b”元素,我需要显示“show-if-b”div,否则它需要隐藏。此逻辑需要在选择的更改和页面加载时运行(可以保存“b”),因此我并不总是有要附加的事件。
我用 jQuery .closest()、.find() 和 .parents() 尝试了不同的方法,但我似乎无法在每个集合中获得特定的选择值。
任何帮助是极大的赞赏。