我将发布我的代码,我很好奇是否有人能看到我在这里做错了什么。我已经测试了存储过程并且工作正常,因此中断必须位于控制器或模型中的某个位置。请参阅下面的代码:
查看:
function saveCalc() {
var TotCost = $("#totCost").val();
var GPM = $("#CalcAmt").val();
var SP = parseFloat(TotCost / (1 - GPM));
var ID = parseInt($("#ID").val());
debugger;
$.ajax({
url: 'Items/ItemsReport_Update2',
type: "Get",
data: { ID: ID, SP: SP },
success: function () {
CalcDialog.close();
CalcDestroy();
$('#ItemsReportgrid').data('kendoGrid').dataSource.read();
$('#ItemsReportgrid').data('kendoGrid').refresh();
}
});
}
控制器:
public void ItemsReport_Update2(int ID, double SP)
{
ItemsModel oItemsModel = new ItemsModel();
oItemsModel.UpdateItemsReport2(ID, SP);
}
型号:
public void UpdateItemsReport2(int ID, double SP)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("sp_UpdateInvItem2", con)
{
CommandType = CommandType.StoredProcedure
};
if (con.State == ConnectionState.Closed)
con.Open();
cmd.Parameters.AddWithValue("@ID", ID);
cmd.Parameters.AddWithValue("@SP", SP);
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
}
}
预先感谢您的帮助。我已经使用调试器运行了脚本,并且它正确地传递了数据。
url: '/Items/ItemsReport_Update2',
您在ajax URL 中错过了“/”
如果您正在加载剑道网格数据,请像这样更改您的控制器
public void ItemsReport_Update2( [DataSourceRequest]DataSourceRequest request,int ID, double SP)
{
//Create a list with your model type
List<> lst = new List<>();
ItemsModel oItemsModel = new ItemsModel();
oItemsModel.UpdateItemsReport2(ID, SP);
DataSourceResult result = lst.ToDataSourceResult(request);
var jsonResult = Json(result,JsonRequestBehavior.AllowGet);
}
那么你需要像这样改变javascript
function saveCalc() {
var TotCost = $("#totCost").val();
var GPM = $("#CalcAmt").val();
var SP = parseFloat(TotCost / (1 - GPM));
var ID = parseInt($("#ID").val());
var grid = $("#ItemsReportgrid").data('kendoGrid');
debugger;
$.ajax({
url: '/Items/ItemsReport_Update2',
type: "Get",
data: { ID: ID, SP: SP },
success: function (result) {
grid.dataSource.data(result.Data);
CalcDialog.close();
CalcDestroy();
}
});
}