c# - 如何将包含字符串的 jQuery 对象绑定(bind)到 List<string>?

标签 c# javascript jquery asp.net-mvc model-binding

这希望是一个衬垫。

我已阅读 Phil Haack 的文章 http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx和其他问题,但这些是关于 <form> s 并使用多个名称,而不是将 JS 对象格式化为 $.ajax()请求。

我有:

var elements$ = $('.someClass');
if(elements$.Length === 0){
    //no need for call to server if no elements on page
    return;
}

var elementsList = elements$.map(function (i, element) {
    return $(element).data('some-data-attribute');
})

var data = getOtherObjectContainingData();
//encode in a format that can be automatically bound to list
data.ListOfString = elementsList.get().serializeArray();  //THIS LINE
$.post("ControllerName/ActionName", data, handler);

使用 Controller 操作

public JsonResult ActionName(SomeObject OtherObject, List<string> ListOfString)

我已经尝试过serialize()、serializeArray(),并且可以使用 CSV 字符串解决这个问题,但如果请求格式正确,模型绑定(bind)器可以自动执行此操作,我不想对此胡思乱想。

如何进行绑定(bind) $('string', 'string', 'string')正确吗?

最佳答案

将 ListOfStrings 创建为数组,然后将其扩展为对象

data.ListOfStrings = $.extend({}, ListOfStrings);

应该可以解决这个问题,但显然我无法告诉;)

关于c# - 如何将包含字符串的 jQuery 对象绑定(bind)到 List<string>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8614857/

相关文章:

c# - 输入字符串的方法输出颜色对象C#

javascript - jquery中获取radio类型的输入字段的值

c# - SQL Server CLR Int64 到 SQLInt64 指定的转换无效

C# 如何允许使用 folderBrowserDialog 选择我的电脑

c# - 为什么参数超出范围?

javascript - Backbone.js 将 View 附加到多个元素

javascript - JQuery 上下文菜单与 JQuery DataTable 集成

javascript - 使用 DOM 探索表格

javascript - 如何在不替换节点属性的情况下替换文本

javascript - 如何在javascript中替换字符 '/'之间的字符串