私はこのような私のjQueryコードを持っています
$(document).ready(function () {
var lastsel;
$('#jqgProducts').jqGrid({
//url from wich data should be requested
url: '@Url.Action("CompOff")',
//type of data
datatype: 'json',
//url access method type
mtype: 'POST',
//columns names
ondblClickRow: function (id) {
if (id && id !== lastsel) {
jQuery('#list').restoreRow(lastsel);
jQuery('#list').editRow(id, true);
lastsel = id;
}
$('#jqgProducts').editRow(id, true,null, null);
},
editurl: '@Url.Action("CompOffEdit")',
colNames: ['IdNr', 'CompOffDate', 'Description', 'ExpiryDate', 'IsApproved', 'AppliedOn'],
//columns model
colModel: [
{ name: 'Id', index: 'Id', align: 'center', editable: true, hidden: true},
{ name: 'CompOffDate', index: 'CompOffDate', align: 'center', formatter: 'date', formatoptions: { newformat: 'd/m/Y' }, editable: true },
{ name: 'Description', index: 'Description', align: 'center', editable: true, editoptions: { maxlength: 200} },
{ name: 'ExpiryDate', index: 'ExpiryDate', align: 'center', formatter: 'date', formatoptions: { newformat: 'd/m/Y' }, editable: false },
{ name: 'IsApproved', index: 'IsApproved', align: 'center', editable: false },
{ name: 'AppliedOn', index: 'AppliedOn', align: 'center', formatter: 'date', formatoptions: { newformat: 'd/m/Y' }, editable: false }
],
//pager for grid
pager: $('#jqgpProducts'),
//number of rows per page
rowNum: 10,
//initial sorting column
sortname: 'CompOffDate',
//initial sorting direction
sortorder: 'asc',
//we want to display total records count
viewrecords: true,
caption: 'Comp Off Details',
//grid height
height: '100%',
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
cell: "cell",
id: "id",
userdata: "userdata"
}
});
});
私のコントローラーはこのように
public ActionResult CompOffEdit(int Id,DateTime CompOffDate, string Description)
{
RegisterCompOff r = db.RegisterCompOffs.Where(l=>l.Id==Id).SingleOrDefault();
if (!(r == null))
{
r.CompOffDate = CompOffDate;
r.Description = Description;
db.Entry(r).State = EntityState.Modified;
db.SaveChanges();
return Content("true");
}
else
{
return Content("false");
}
}
編集内容を db に保存しようとすると、この例外が発生します
The parameters dictionary contains a null entry for parameter 'idnr' of non-nullable type 'System.Int32' for method 'System.Web.Mvc.ActionResult CompOffEdit(Int32, System.DateTime, System.String)' in 'AGS.Hrms.Controllers.CompOffController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters
ユーザーはここで compoff の日付と説明のみを編集できます...データベースから選択している ID フィールドは非表示になっています。
誰かがこの問題を修正するのを手伝ってくれますか