如何在没有表单的情况下将字符串数组发布到ASP.NETMVC控制器?
我正在创建一个小应用程序来教自己ASP.NETMVC和JQuery,其中一个页面是可以选择的项目列表。然后,我想按一个按钮,使用JQuery的POST函数,向我的控制器发送一个列表(或类似的内容),其中包含所选项目的ID。
我设法获得了一个数组,其中包含了所选元素的ID,现在我想发布它。我可以这样做的一种方法是在页面中有一个带有隐藏值的虚拟表单,然后用所选的项设置隐藏的值,并发布该表单;不过,这看起来很粗糙。
通过将数组直接发送到控制器,是否有更干净的方法来实现这一点?我尝试了一些不同的东西,但看起来控制器无法映射它正在接收的数据。以下是目前为止的代码:
function generateList(selectedValues) {
var s = {
values: selectedValues //selectedValues is an array of string
};
$.post("/Home/GenerateList", $.toJSON(s), function() { alert("back") }, "json");}
然后我的控制器看起来像这样
public ActionResult GenerateList(List<string> values){
//do something}
我得到的只是控制器参数中的“NULL”.
有小费吗?