我有一个非常奇怪的问题,即我的视图模型没有在 IIS 上转换为 JSON。如果我在我的系统上调试相同的代码,它可以正常工作并将 viewmodesl 转换为 JSON。相同的代码在 IIS 上不会产生相同的结果。
这就是我的视图模型在调用 ko.toJSON 后的样子。
在 IIS 上:
"{"__ko_mapping__":{"ignore":[],"include":["_destroy"],"copy":[],"mappedProperties": {"__type":true,"Prop1":true,"Prop2":true,"Prop3":true,"Prop4":true,"Prop5":true}}}"
在本地
{"__type":"DealerModel","Prop1":"","Prop2":"","Prop3":"","Prop4":"","Prop5":"Some Name ltd"}}}"
这就是我的 DealerModel 类的样子:
[Serializable]
Public class DealerModel
{
public string Porp1 { get; set; }
public string Porp2 { get; set; }
public string Porp3 { get; set; }
public string Porp4 { get; set; }
public string Porp5 { get; set; }
}
我想问题是不知何故 DealerModel 没有作为类型传递给 JSON 或其他东西。
有没有人遇到过这个问题?这里可能是什么问题?
这就是我将 viewmodesl 转换为 JS 的方式。服务器端的方法需要arraylist。
var jsonViewModel = '';
jsonViewModel = ko.toJSON(myNameSpace.ViewModel1);
jsonViewModel = jsonViewModel.replace(/\/Date\((.*?)\)\//gi, "new Date($1)");
saveArray[0] = jsonViewModel
jsonViewModel = ko.toJSON(myNameSpace.ViewModel2);
jsonViewModel = jsonViewModel.replace(/\/Date\((.*?)\)\//gi, "new Date($1)");
saveArray[1] = jsonViewModel
$.ajax({
type: "POST",
url: "Services/SomeService.asmx/SaveObjects",
cache: true,
contentType: "application/json; charset=utf-8",
data:"{args:" + ko.toJSON(saveArray) + "}",
dataType: "json"
});
SaveObjects 方法需要 arrayList。