モデルデータを保存しようとしているグリッドがあります。これは以下のグリッドです。
@(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を使用して、学生IDを添付します
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 は常にゼロとして返され、何をしようとしても値を取得できないようです。
誰かが私が間違っていることに光を当てることができれば、それは素晴らしいことです。
私が作成したアイテムが渡されたことはわかりますが、剣道はこのデータのプッシュに関して裏で何か卑劣なことをしているに違いありません。
ご存知かもしれませんが、私は MVC/剣道の世界にはまだ慣れていません。
アドバイスをよろしくお願いします。