这希望是一个衬垫。
我已阅读 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/