如何在 ASP .NET MVC 5 中使用 select2 将新值动态添加到列表框并将其传递给控制器?
Posted
技术标签:
【中文标题】如何在 ASP .NET MVC 5 中使用 select2 将新值动态添加到列表框并将其传递给控制器?【英文标题】:How to dynamically add new values to a listbox using select2 in ASP .NET MVC 5 and pass it to the controller? 【发布时间】:2019-04-08 18:08:41 【问题描述】:我正在使用 select2 'tags:true' 向现有列表框添加新值。但是我无法获得新添加的值,因为它在 HttpPost 上没有向控制器返回任何值。如何在控制器中获得这个新添加的值?
列表框代码:
@html.ListBoxFor(model => model.SelectedIds, Model.Categories, htmlAttributes: new @class = "js-multiple" )
脚本部分:
$(document).ready(function()
$('.js-multiple').select2(tags:true););
Model.Categories 从数据库中获取值并填充列表框。 当我向列表框添加新值并单击提交按钮 (HttpPost) 时,没有值传递给控制器。我想将选定的列表项传递给控制器,以便将新添加的值添加到数据库中。
【问题讨论】:
我认为您需要将它们添加到实际的选择中(不是选择 2 版本),然后在添加新值后销毁并重新初始化 select2 如何将它们添加到实际选择中? 【参考方案1】:您应该使用 ajax 获取数据并将数据设置为 select2,看这个例子:
function GetCityBranch(provinceid)
$.ajax(
type: 'GET',
url: '/Suppliers/Supplier/GetCity',
data: "provinceid": provinceid ,
dataType: 'json',
success: function (data)
$("#BranchCityId").empty();
array = data;
$("#BranchCityId").select2(
data: data
);
,
error: function ()
);
【讨论】:
那么使用模型属性绑定列表框不能直接实现新值的添加? 最好使用 javascript 来用新值填充下拉列表,但您可以使用部分并将下拉列表放在部分视图中而无需 select2 您可以刷新模型并仅刷新部分 感谢您的快速回复。 :)以上是关于如何在 ASP .NET MVC 5 中使用 select2 将新值动态添加到列表框并将其传递给控制器?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Asp.Net mvc 5 的 grid.mvc 中添加两个按钮
如何在asp.net mvc 5身份中的授权属性中使用动态角色
如何在 ASP.NET MVC 中的 HTML-5 data-* 属性中使用破折号