我有一个网格,我正在尝试保存一些模型数据,这是下面的网格:
@(Html.Kendo().Grid(Model.TeachingLearningList)
.Name("TeachLearnGrid")
.Columns(columns =>
{
columns.Bound(p => p.ID).Width(50).Hidden(true);
columns.Bound(p => p.SelectedSubject).Title("Subject").ClientTemplate("#=SelectedSubject.Name#").Width(150);
columns.Bound(p => p.StrategyItem).Title("Strategy").ClientTemplate("#=StrategyItem.Name#").Width(200);
columns.Bound(p => p.CreatedDateTime).Format("{0:dd MMM yy HH:mm}").Title("Created Date");
columns.Bound(p => p.ReminderDate).Format("{0:dd MMM yy HH:mm}").Title("Reminder Date Time").Width(200);
columns.Bound(p => p.CompletedDateTime).Format("{0:dd MMM yy HH:mm}").Title("Completed Date");
columns.Bound(p => p.Completed).Title("Completed");
})
.Pageable()
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save().HtmlAttributes(new { id = "TLSave" });
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Id(p => p.ID);
model.Field(p => p.ID).Editable(false);
model.Field(p => p.SelectedSubject).DefaultValue(ViewData["defaultSubject"] as DataAccessLibrary.Classes.Subject).Editable(true);
model.Field(p => p.StrategyItem).DefaultValue(ViewData["defaultStrategy"] as DataAccessLibrary.Classes.ParStrategy).Editable(true);
model.Field(p => p.CreatedDateTime).Editable(false);
model.Field(p => p.CompletedDateTime).Editable(false);
model.Field(p => p.ReminderDate).DefaultValue(DateTime.Now);
})
.ServerOperation(false)
.Batch(true)
.Events(events => events.Error("error_handler"))
.Read(read => read.Action("Get_TeachingLearning", "Student").Data("thisStudent"))
.Create(create => create.Action("Create_TeachingLearning", "Student").Data("thisStudent"))
.Update(update => update.Action("Update_TeachingLearning", "Student").Data("thisStudent"))
)
)
然后我使用这段 javacript 来附加 studentid
function thisStudent() {
var studentID = $("#Students").val();
if (studentID == 'undefined' || studentID < 1) {
studentID = 0;
}
console.log("This Student Fired: " + studentID);
return
{
currentID: studentID
};
}
然后最后将其发送到此操作
[HttpPost]
public JsonResult Create_TeachingLearning([DataSourceRequest] DataSourceRequest request,[Bind(Prefix = "models")]IEnumerable<StudentToParStrategy> students , int currentID = 0 )
{
List<StudentToParStrategy> results = new List<StudentToParStrategy>();
//if (studentItems != null && ModelState.IsValid)
//{
// foreach (StudentToParStrategy strategy in studentItems)
// {
// results.Add(strategy);
// }
//}
return Json(results.ToDataSourceResult(request, ModelState));
}
现在由于某种原因,currentID 总是返回为零,无论我尝试做什么,我似乎都无法获得一个值。
如果有人能阐明我做错了什么,那就太好了,因为我还没有找到任何解决方案。
我可以看到我创建的项目已被传递,但 Kendo 必须在幕后偷偷摸摸地做一些关于推送这些数据的事情。
正如您可能会说的那样,我对 MVC/Kendo 世界还很陌生。
提前感谢您的任何建议。