我在下面将Json数据传递给My MVC控制器操作
脚本
var jInput = $("textarea");
var count = 0;
var jsonPackage = "{";
$.each(jInput, function (i) {
jInput[i].style.borderColor = "";
if (jInput[i].value != "") {
if (count != 0) {
jsonPackage += ",";
}
count++;
jsonPackage += "'" + jInput[i].id + "':'" + jInput[i].value.replace(/\\/g, "|").replace(/\'/g, "^") + "'";
}
});
jsonPackage += "}";
$.ajax({
url: "Appraisal/LegalCheck",
type: "POST",
data: JSON.stringify(jsonPackage),
dataType: "json",
contentType: "application/json",
success: function (retValue) {
alert(retValue);
}
});
控制器方法
public Dictionary<string, Illegal[]> LegalCheck(string jsonPackage)
{
}
班级
[Serializable]
public class Illegal
{
public string Phrase { get; set; }
public int StartIndex { get; set; }
}
由于某种原因,jsonPackage在控制器方法中始终为null。从脚本传递的示例数据是
jsonPackage - {'CommentTextarea_1181_1183':'ghhgghhhgd','CommentTextarea_1181_1184':'Coments','CommentTextarea_1181_1185':'comentss'}
我在这里做错了什么?为什么我的控制器方法中出现空值?请建议。
由于
答案 0 :(得分:1)
试
$.ajax({
url: "Appraisal/LegalCheck",
type: "POST",
data: {jsonPackage:JSON.stringify(jsonPackage)},
dataType: "json",
success: function (retValue) {
alert(retValue);
}
});
答案 1 :(得分:0)
我猜你的JSON字符串实际上并没有被分配给json Package变量,所以你的模型绑定器不会把它拿起来。
快速修复尝试
$.ajax({
url: "Appraisal/LegalCheck",
type: "POST",
data: "jsonPackage="+JSON.stringify(jsonPackage),
dataType: "json",
contentType: "application/json",
success: function (retValue) {
alert(retValue);
}
});