0

我有一个网格,我正在尝试保存一些模型数据,这是下面的网格:

@(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 世界还很陌生。

提前感谢您的任何建议。

4

0 回答 0