Javascript 无法将数组项作为数据参数传递-内部服务器错误
我试图使用ajax从自定义js脚本调用c#mvc控制器方法,但它似乎不接受数组项作为ajax中的参数 我试图将它们分配给一个非数组变量,结果成功了,但我需要将它们作为数组元素传递Javascript 无法将数组项作为数据参数传递-内部服务器错误,javascript,c#,ajax,asp.net-mvc,Javascript,C#,Ajax,Asp.net Mvc,我试图使用ajax从自定义js脚本调用c#mvc控制器方法,但它似乎不接受数组项作为ajax中的参数 我试图将它们分配给一个非数组变量,结果成功了,但我需要将它们作为数组元素传递 public async Task 500(内部服务器错误)请尝试将POST更改为GET,然后添加以下内容: return Json(new { Url = redirectUrl }, JsonRequestBehavior.AllowGet); 也改变了: public async Task<JsonRes
public async Task 500(内部服务器错误)请尝试将POST
更改为GET
,然后添加以下内容:
return Json(new { Url = redirectUrl }, JsonRequestBehavior.AllowGet);
也改变了:
public async Task<JsonResult> CallEngineAsync(int id, string command)
公共异步任务调用ngineasync(int-id,string命令)
请尝试将POST
更改为GET
,然后添加以下内容:
return Json(new { Url = redirectUrl }, JsonRequestBehavior.AllowGet);
也改变了:
public async Task<JsonResult> CallEngineAsync(int id, string command)
公共异步任务调用ngineasync(int-id,string命令)
最后是某种作用域问题:setInterval()中使用的变量必须在同一作用域(?)中声明,而且由于超时,p(计数器)始终设置为最终值方式,而且c#方法需要进行一次更改才能正确获取参数: 调用ngineasync([FromBody]int-id,[FromBody]string命令)的公共异步任务 { 字符串路径=Server.MapPath(“/PluginDLLs/”); 字符串输出=等待EngineBroker.CallEngine(命令、路径、AppDomain.CurrentDomain); 会话[“输出”+id]=输出; 返回输出; }
$(“.p-container”).find(“.p”).each(函数()
{
var confi=$(this.find(#command”).attr(“value”);
var间隔=1000*确认替换(/\D/g');
if(确认包括(“间隔”)和间隔>0)
{
var id=$(this.attr(“数据插件id”);
var输出=$(this.find(#“+id)
window.setInterval(函数()
{
$.ajax(
{
url:“主页/调用的Neasync”,
数据:“id=”+id+”&命令=”+confi,
传统的:是的,
键入:“GET”,
成功:功能(数据)
{
html(“
”+数据+”);
//window.location.href=data.Url
},
});
},间隔);
}
});
最后是某种作用域问题:setInterval()中使用的变量必须在同一作用域(?)中声明,而且由于超时,p(计数器)始终设置为最终值方式,而且c#方法需要进行一次更改才能正确获取参数:
调用ngineasync([FromBody]int-id,[FromBody]string命令)的公共异步任务
{
字符串路径=Server.MapPath(“/PluginDLLs/”);
字符串输出=等待EngineBroker.CallEngine(命令、路径、AppDomain.CurrentDomain);
会话[“输出”+id]=输出;
返回输出;
}
$(“.p-container”).find(“.p”).each(函数()
{
var confi=$(this.find(#command”).attr(“value”);
var间隔=1000*确认替换(/\D/g');
if(确认包括(“间隔”)和间隔>0)
{
var id=$(this.attr(“数据插件id”);
var输出=$(this.find(#“+id)
window.setInterval(函数()
{
$.ajax(
{
url:“主页/调用的Neasync”,
数据:“id=”+id+”&命令=”+confi,
传统的:是的,
键入:“GET”,
成功:功能(数据)
{
html(“
”+数据+”);
//window.location.href=data.Url
},
});
},间隔);
}
});
仍在获取:GET 500(内部服务器错误)localhost:44381/Home/CallEngineAsync?id=115&command=test
更像是您的合同,在EngineBroker.CallEngine
yep,您应该添加所有参数,或者预定义它们,如:public async Task CallEngineAsync(int id=0,string command=“test”)
它现在没有给出错误,但似乎也没有传递参数值检查此输入值,或添加测试数据:数据:{id:1234,command:“test”},
然后重试。仍然获取:GET 500(内部服务器错误)localhost:44381/Home/CallEngineAsync?id=115&command=test
更像是您的合同,在EngineBroker.CallEngine中可能会发生其他VISE空引用异常。CallEngine
yep,您应该添加所有参数,或预定义它们,如:公共异步任务CallEngineAsync(int id=0,string command=“test”)
它现在没有给出该错误,但似乎也没有传递参数值检查此输入值,或添加测试数据:数据:{id:1234,命令:“test”},
,然后重试。