Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $.post始终将空值获取到服务器中_Javascript_C#_Jquery_Arrays_Asp.net Mvc - Fatal编程技术网

Javascript $.post始终将空值获取到服务器中

Javascript $.post始终将空值获取到服务器中,javascript,c#,jquery,arrays,asp.net-mvc,Javascript,C#,Jquery,Arrays,Asp.net Mvc,好的,这可能很简单,我有一个简单的$.post调用,向服务器发送字符串数组作为参数 $.get('/home/ReadCalPacTagValue', data, function (data) { data = $.parseJSON(data); if (data.length != 0) { var ReadFromDb = data[0]["PushToDb"].replace('PushToDb','Re

好的,这可能很简单,我有一个简单的$.post调用,向服务器发送字符串数组作为参数

 $.get('/home/ReadCalPacTagValue', data, function (data) {
            data = $.parseJSON(data);
            if (data.length != 0) {
                var ReadFromDb = data[0]["PushToDb"].replace('PushToDb','ReadFromDb');
                var DBAckno = ReadFromDb.replace('ReadFromDb', 'DataAck');
                var FIdTag = ReadFromDb.replace('ReadFromDb', 'FluidTypeId');
                var UserIdTag = ReadFromDb.replace('ReadFromDb', 'UserId');
                var UniqueIdTag = ReadFromDb.replace('ReadFromDb', 'UniqueRecordId');
                var dbconnTag = ReadFromDb.replace('ReadFromDb', 'DatabaseConnectionString');
                updateTags = [dbconnTag,FIdTag,ReadFromDb, UserIdTag,UniqueIdTag];
                actionvalue = ["", fluidtypeid, '1', userid, uniqueID];
                var data_Tags = { updateTags: updateTags, actionvalue: actionvalue }
                $.post('/home/WriteCalPacTagValue', data_Tags, function (response) {
                    //var Path = "Config/16_CalPac/" + FluidType + "/" + metername + "/" + FileName
                    //$.cookie('FileName', FileName, { expires: 7, path: '/' });
                    //$.cookie('FilePath', Path, { expires: 7, path: '/' });
                    //$.cookie('ModuleName', "CalPac", { expires: 7, path: '/' });
                    //window.open('../home/CalPac', '_blank');
                });
            } else {
                    swal("Error !", "Data operation tag not binded for this product", "warning");
            }
        })
 public void WriteCalPacTagValue(string[] updateTags, string[] actionValue)
        {
            string[] writetags = { };
            DanpacUIRepository objNewTag = new DanpacUIRepository();

            if (updateTags.Count() > 0)
            {
                actionValue[0] = ConfigurationManager.AppSettings["DBString"].ToString();
                for (int i = 0; i < updateTags.Count(); i++)
                {

                    writetags = updateTags[i].Replace("&lt;", "").Replace("&gt;", ">").Split('>');
                    objNewTag.WriteTag(writetags, actionValue[i]);
                }

            }
        }
我的问题是,每次发出$.post调用时,服务器都会在参数中获取空值

 $.get('/home/ReadCalPacTagValue', data, function (data) {
            data = $.parseJSON(data);
            if (data.length != 0) {
                var ReadFromDb = data[0]["PushToDb"].replace('PushToDb','ReadFromDb');
                var DBAckno = ReadFromDb.replace('ReadFromDb', 'DataAck');
                var FIdTag = ReadFromDb.replace('ReadFromDb', 'FluidTypeId');
                var UserIdTag = ReadFromDb.replace('ReadFromDb', 'UserId');
                var UniqueIdTag = ReadFromDb.replace('ReadFromDb', 'UniqueRecordId');
                var dbconnTag = ReadFromDb.replace('ReadFromDb', 'DatabaseConnectionString');
                updateTags = [dbconnTag,FIdTag,ReadFromDb, UserIdTag,UniqueIdTag];
                actionvalue = ["", fluidtypeid, '1', userid, uniqueID];
                var data_Tags = { updateTags: updateTags, actionvalue: actionvalue }
                $.post('/home/WriteCalPacTagValue', data_Tags, function (response) {
                    //var Path = "Config/16_CalPac/" + FluidType + "/" + metername + "/" + FileName
                    //$.cookie('FileName', FileName, { expires: 7, path: '/' });
                    //$.cookie('FilePath', Path, { expires: 7, path: '/' });
                    //$.cookie('ModuleName', "CalPac", { expires: 7, path: '/' });
                    //window.open('../home/CalPac', '_blank');
                });
            } else {
                    swal("Error !", "Data operation tag not binded for this product", "warning");
            }
        })
 public void WriteCalPacTagValue(string[] updateTags, string[] actionValue)
        {
            string[] writetags = { };
            DanpacUIRepository objNewTag = new DanpacUIRepository();

            if (updateTags.Count() > 0)
            {
                actionValue[0] = ConfigurationManager.AppSettings["DBString"].ToString();
                for (int i = 0; i < updateTags.Count(); i++)
                {

                    writetags = updateTags[i].Replace("&lt;", "").Replace("&gt;", ">").Split('>');
                    objNewTag.WriteTag(writetags, actionValue[i]);
                }

            }
        }
public void WriteCalPacTagValue(string[]updateTags,string[]actionValue)
{
字符串[]writetags={};
DanpacUIRepository objNewTag=新的DanpacUIRepository();
如果(updateTags.Count()>0)
{
actionValue[0]=ConfigurationManager.AppSettings[“DBString”].ToString();
对于(int i=0;i”)。拆分(“>”);
objNewTag.WriteTag(writetags,actionValue[i]);
}
}
}
我不明白我在这里做错了什么。。而同一个函数正从另一个JS文件(带有一些不同的字符串)运行到数组updateTags中

有什么帮助吗?

public class DataTags
{
    public string[] UpdateTags { get; set; }
    public string[] ActionValue { get; set; }
}
在服务器上:将方法更改为

[HttpPost()]
public void WriteCalPacTagValue([FromBody]DataTags data_Tags)
{

}
在客户端:呼叫它

$.ajax({
    type: 'POST',
    url: '/home/WriteCalPacTagValue',
    data: data_Tags,
    success: function (response) { 
    //your code
    }
});
您还可以使用
data:json.stringify(data#u标记)
将整个数据作为json字符串发送,在javascript代码中,更改
WriteCalPacTagValue
以在参数处接受单个字符串,并在服务器端用C代码对其进行反序列化


编辑如果无法更改服务器端代码,可以按照注释中的说明进行操作。

发送数据数组,因此需要使用
$.ajax()
方法,以便设置
内容类型:'application/json',
并使用stringify数据-
数据:json.stringify(数据标签),
。或者,您必须发送单个集合项-
{updateTags[0]:dbconnTag,updateTags[1]:'FIdTag,…}
尝试使用
ajax
traditional:true
-感谢在显式设置ajaxsetting-traditional:true时解决了这个问题。感谢您的解决方案Hossein,但我无法在C#端进行更改。