AJAX 将 Slickgrid 数据发布到 MVC
AJAX Posting Slickgrid data to MVC
我有一个 slickgrid,正在尝试将其数据保存回服务器。
当我在服务器上断点时,我可以看到 Request.Form 对象中的数据,但我无法使它与我的对象一起工作。
我的数据看起来像...
[
{"id":"0","LineNumber":"","Detail":"MOT cost","Code":" ","Qty":"1","Est":" ","CustomerDamage":false,"Cost":"44.00","Value":"44.00","VAT":true,"SelfBillingLine":"False","DefectStatus":" "},
{"id":"62","LineNumber":"","Detail":"CRACKS IN Chassis","Code":"TLMA02","Qty":"1","Est":"","CustomerDamage":false,"Cost":"35.00","Value":"35.00","VAT":true,"SelfBillingLine":"False","DefectStatus":"Large repair"},
{"id":"63","LineNumber":"","Detail":"TEAR IN N/S CURTAIN","Code":"TLMA02","Qty":"1","Est":"","CustomerDamage":true,"Cost":"10.00","Value":"10.00","VAT":true,"SelfBillingLine":"False","DefectStatus":"Customer"}
]
我在点击按钮后发帖...
$("#SBSave").click(function() {
debugger;
var details = JSON.stringify(defectrows);
save('SBDetail/SaveSBItem', details);
});
我尝试了很多方法来接收数据,none 成功了。
我的控制器...
[HttpPost]
public void SaveSBItem(SelfBillDetailList details, string Approve = "")
{
// Actions here.
}
我的模型...
尝试了很多东西,都没有用...
public class SelfBillDetailList
{
public IEnumerable<SelfBillingIncomingDetail> IncomingDetails { get; set; }
}
public class SelfBillingIncomingDetail
{
public int id { get; set; }
public string Code { get; set; }
public string LineNumber { get; set; }
public string Detail { get; set; }
public string Action { get; set; }
public string Qty { get; set; }
public string Est { get; set; }
public bool VAT { get; set; }
public bool CustomerDamage { get; set; }
public string Cost { get; set; }
public string Value { get; set; }
public DateTime Received { get; set; }
public string DefectStatus { get; set; }
public bool SelfBillingLine { get; set; }
}
所以,我尝试了一个单独的 SelfBillingIncomingDetail 和一个 SelfBillDetailList。
两者都不起作用。
我什至发送了一个单独的行,还是不行。
我想将它作为一个组发送,所以它将是一个 SelfBillingIncomingDetail 数组,但没有任何效果。
感谢您的帮助。
我又做了一遍...找了好久终于找到答案了
Darin Dimitrov 在中的回答
Post an Array of Objects via JSON to ASP.Net MVC3
让我来回答。
看来发送数据的时候需要给数据数组取一个和SelfBillDetailList中的属性同名的数据,所以...
var details = JSON.stringify({IncomingDetails : defectrows});
修复它。
我有一个 slickgrid,正在尝试将其数据保存回服务器。
当我在服务器上断点时,我可以看到 Request.Form 对象中的数据,但我无法使它与我的对象一起工作。
我的数据看起来像...
[
{"id":"0","LineNumber":"","Detail":"MOT cost","Code":" ","Qty":"1","Est":" ","CustomerDamage":false,"Cost":"44.00","Value":"44.00","VAT":true,"SelfBillingLine":"False","DefectStatus":" "},
{"id":"62","LineNumber":"","Detail":"CRACKS IN Chassis","Code":"TLMA02","Qty":"1","Est":"","CustomerDamage":false,"Cost":"35.00","Value":"35.00","VAT":true,"SelfBillingLine":"False","DefectStatus":"Large repair"},
{"id":"63","LineNumber":"","Detail":"TEAR IN N/S CURTAIN","Code":"TLMA02","Qty":"1","Est":"","CustomerDamage":true,"Cost":"10.00","Value":"10.00","VAT":true,"SelfBillingLine":"False","DefectStatus":"Customer"}
]
我在点击按钮后发帖...
$("#SBSave").click(function() {
debugger;
var details = JSON.stringify(defectrows);
save('SBDetail/SaveSBItem', details);
});
我尝试了很多方法来接收数据,none 成功了。
我的控制器...
[HttpPost]
public void SaveSBItem(SelfBillDetailList details, string Approve = "")
{
// Actions here.
}
我的模型... 尝试了很多东西,都没有用...
public class SelfBillDetailList
{
public IEnumerable<SelfBillingIncomingDetail> IncomingDetails { get; set; }
}
public class SelfBillingIncomingDetail
{
public int id { get; set; }
public string Code { get; set; }
public string LineNumber { get; set; }
public string Detail { get; set; }
public string Action { get; set; }
public string Qty { get; set; }
public string Est { get; set; }
public bool VAT { get; set; }
public bool CustomerDamage { get; set; }
public string Cost { get; set; }
public string Value { get; set; }
public DateTime Received { get; set; }
public string DefectStatus { get; set; }
public bool SelfBillingLine { get; set; }
}
所以,我尝试了一个单独的 SelfBillingIncomingDetail 和一个 SelfBillDetailList。
两者都不起作用。
我什至发送了一个单独的行,还是不行。
我想将它作为一个组发送,所以它将是一个 SelfBillingIncomingDetail 数组,但没有任何效果。
感谢您的帮助。
我又做了一遍...找了好久终于找到答案了
Darin Dimitrov 在中的回答 Post an Array of Objects via JSON to ASP.Net MVC3 让我来回答。
看来发送数据的时候需要给数据数组取一个和SelfBillDetailList中的属性同名的数据,所以...
var details = JSON.stringify({IncomingDetails : defectrows});
修复它。