我的json对象变成null,我可以'我不明白为什么
My json object turns out null and I can't see why
所以我一直在网上寻找一种将数据从js发送到控制器的方法,并找到了一个看似不错的解决方案。
function syncDB() {
if (localStorage.length != 0) {
var data = viewLog();
for (var i = 0; i < localStorage.length; i++) {
$.ajax({
url: "/Leads/RegisterOfflineEntries",
type: "POST",
dataType: "json",
data: JSON.stringify(data)
});
}
}
}
这被发送到:
public ActionResult RegisterOfflineEntries(string[] leads)
{
string[] splitLeads;
for (int i = 0; i < leads.Length; i++)
{
splitLeads = leads[i].Split(',');
var validFields = new List<LeadFields>();
var fields = new List<LeadFields>
{
new LeadFields() {Value = splitLeads[0], FieldsId = 1},
new LeadFields() {Value = splitLeads[1], FieldsId = 2},
new LeadFields() {Value = splitLeads[2], FieldsId = 3},
new LeadFields() {Value = splitLeads[3], FieldsId = 4},
new LeadFields() {Value = splitLeads[4], FieldsId = 5}
};
foreach (var v in fields.Where(v => !(string.IsNullOrEmpty(v.Value))))
{
v.Value = v.Value.ToUpper();
validFields.Add(v);
}
}
return RedirectToAction("Index","Home");
}
现在,不要过多地阅读代码,因为问题在于ActionMethod的参数。它是空的,我不知道为什么,因为当我在其他地方使用js数据时,我可以读取上面的数据,但将其发送到控制器是不起作用的。
谢谢!
编辑:我试图发送的对象是从viewLog方法中提取的,它看起来像这个
function viewLog() {
var localDbList = [localStorage.length];
for (var i = 0; i < localStorage.length; i++) {
localDbList[i] = localStorage[i];
}
return localDbList;
}
我有一个用于离线支持的localStorage,我正试图将存储在这里的值保存在我的服务器上
编辑:
Request URL:http://localhost:59848/Leads/RegisterOfflineEntries
Request Headers
Provisional headers are shown
Accept:*/*
Content-Type:json
Origin:http://localhost:59848<br>
Referer:http://localhost:59848/Leads/Register
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36
X-DevTools-Emulate-Network-Conditions-Client-Id:C8AD858A-EBA0-4A75-8D89-38956182F914
X-Requested-With:XMLHttpRequest
Request Payloadview source
[DAVE, DAVID, HAHA@MAIL.COM, , ]
0: "DAVE"
1: "DAVID"
2: "HAHA@MAIL.COM"
3: ""
4: ""
您还没有发布data
的确切格式,在字符串化之前应该是这样的
var leadsStrings = new Array();
leadsStrings.push("string1");
leadsStrings.push("string2"); //etc
var dataObj = {
leads: leadsStrings
};
data : dataObj
function syncDB() {
var data = new Array();
if (localStorage.length != 0) {
for (var i = 0; i < localStorage.length; i++) {
data.push(localStorage[i]);
}
var dataObj = {
leads: data
};
$.ajax({
url: "/Leads/RegisterOfflineEntries",
data: dataObj
});
}
}
你是这个意思吗?
我不知道最初的问题是什么,从来没有真正用这种方法解决过,而是用API控制器解决了这个问题,这样它就可以在后台顺利地完成任务。如果有人对感兴趣,请在下面编码
function OfflineSync() {
if (localStorage.length != 0) {
$.post('/api/TrackApi', { '': localStorage.length });
var formatedList = formatViewLog();
for (var k = 0; k < formatedList.length; k += 5) {
var value = JSON.stringify([
formatedList[k],
formatedList[k + 1],
formatedList[k + 2],
formatedList[k + 3],
formatedList[k + 4]
]);
$.post('/api/Offline', { '': value });
}
}
localStorage.clear();
}
相关文章:
- 可以'我不明白为什么;t将行和单元格添加到表中
- Don'我不明白为什么我的setInterval+jQuery;不起作用
- 可以'I don’我不明白我为什么回来了
- 我可以'我不明白为什么我能;不要在JavaScript中更改蜡笔的颜色
- 意外;在我的JavaScript中,我不明白为什么
- 编程新手,可以'我不明白为什么这个因子计算器没有;不起作用
- 不明白为什么我不用我的脚本更改我的 PHP 变量
- 我不明白为什么轮播中的幻灯片不可见
- 我不明白为什么我的代码不获取输入框的值并创建一个新对象
- 不明白为什么 Backbone collection.create 不发布数组
- 不明白为什么我的 CSS 不起作用
- 骨干.js事件没有开火,我不明白为什么
- 不明白为什么不应该在语句的开头使用对象文字
- 我没有'我不明白为什么;这个“;关键字dons'I don’我没有预料到的那么管用
- Don'我不明白为什么这个JavaScript函数可以用一种方法调用,而不能用另一种方法
- 我的json对象变成null,我可以'我不明白为什么
- 可以'我不明白为什么;不要给我任何输出值
- 可以'我不明白为什么我的JS;不起作用
- 不明白为什么我的选择不会总结
- 我可以'我不明白为什么得分不高;我不在玩石头、布、剪刀的游戏