我正在尝试将通过AJAX的int(或IEnumerable)数组传递给MVC操作,我需要一些帮助.
javascript是
$.get('/controller/MyAction', { vals: arrayOfValues }, function (data) {...
Run Code Online (Sandbox Code Playgroud)
并且控制器动作是
public ActionResult MyAction(IEnumerable<int> arrayOfValues )
Run Code Online (Sandbox Code Playgroud)
目前请求的格式为
controller/MyAction?_=1301503418429&arrayOfValues[]=491&arrayOfValues[]=368&arrayOfValues[]=235&arrayOfValues[]=437
Run Code Online (Sandbox Code Playgroud)
所以我几乎就在那里,如果我取下方括号,我会得到正确的答案.我应该如何将该数组传递给我的get,以便控制器可以识别它是什么?
非常感谢您的帮助
戴夫
我正在尝试将数组从jQuery函数传递给我的控制器.该数组包含内容和持有该内容的div的id.
当我检查通过Firebug中的AJAX帖子发送的对象时,正确的值存在但是在我的控制器上放置一个断点后,接收的值是一个空的List或Array或我尝试将其设置为的任何类型.我很擅长使用JSON将数据传递给我的控制器,所以在我出错的地方会有所帮助.
jQuery函数调用"提交"单击.该数组在我的脚本中全局声明,并在每次用新内容填充新区域时添加.
function postContent() {
$.ajax({
type: "POST",
datatype: 'json',
url: "/Admin/getContentArray",
data: JSON.stringify(contentArray),
contentType: 'application/json; charset=utf-8',
success: function (result) {
alert(result.Result);
}
});
}
Run Code Online (Sandbox Code Playgroud)
测试接收控制器
[HttpPost]
public JsonResult getContentArray(List<Content> myPassedArray)
{
var data = myPassedArray;
return this.Json(null);
}
Run Code Online (Sandbox Code Playgroud) 我在javascript中有一个数组,我需要把它带到我的c#webMethod.做这个的最好方式是什么?
我的c#代码是这样的:
[WebMethod]
public static void SaveView(string[] myArray, string[] filter)
{
}
Run Code Online (Sandbox Code Playgroud)
编辑 -
我的json数据如下所示:
{"myArray":[{"name":"Title","index":"Title","hidden":false,"id":"1","sortable":true,"searchoptions":{"sopt":["cn","eq","bw","ew"]},"width":419,"title":true,"widthOrg":150,"resizable":true,"label":"Title","search":true,"stype":"text"},{"name":"Author","index":"Author","hidden":false,"id":"3","sortable":true,"searchoptions":{"sopt":["cn","eq","bw","ew"]},"width":419,"title":true,"widthOrg":150,"resizable":true,"label":"Author","search":true,"stype":"text"}]}
Run Code Online (Sandbox Code Playgroud)
但我不工作......任何想法为什么?
非常感谢你.