在MVC项目中,我有以下视图,其中我使用了Kendo Grid
<%: Html.Kendo().Grid<Milestone>() .Name("MilestonesGrid") .Columns(columns => { columns.Bound(p => p.ContractMilestoneID).Hidden(); columns.Bound(p => p.MilestonesN).Title("Κωδικός οροσήμου"); columns.Bound(p => p.EstimatedDate).Title("Εκτιμώμενη ημερομηνία"); columns.Bound(p => p.RealDate).Title("Πραγματική ημερομηνία"); columns.Bound(p => p.MilestoneDescription).Title("Περιγραφή"); columns.Bound(p => p.Payment).Title("Πληρωμή"); columns.Bound(p => p.PaymentRate).Title("Ποσοστό πληρωμής"); columns.Bound(p => p.IsCompleted).Title("Έχει ολοκληρωθεί"); columns.Command(command => { command.Edit() .Text("Επεξεργασία") .CancelText("Ακύρωση") .UpdateText("Αποθήκευση"); command.Destroy() .Text("Διαγραφή"); }); }) .ToolBar(toolbar => toolbar.Create().Text("Προσθήκη νέου οροσήμου")) .Editable(editable => editable.Mode(GridEditMode.InLine)) .sortable() .Pageable() .Filterable() .Resizable(resize => resize.Columns(true)) .DataSource(dataSource => dataSource .Ajax() .ServerOperation(true) .Model(model => model.Id(o => o.ContractMilestoneID)) .Model(model => model.Field(o => o.MilestonesN)) .Model(model => model.Field(o => o.EstimatedDate)) .Model(model => model.Field(o => o.RealDate)) .Model(model => model.Field(o => o.MilestoneDescription)) .Model(model => model.Field(o => o.Payment)) .Model(model => model.Field(o => o.PaymentRate)) .Model(model => model.Field(o => o.IsCompleted)) .Batch(true) .Create(create => create.Action("CreateMilestone","Milestones")) .Read(read => read.Action("DetailsJson","Milestones",new { id = ViewBag.ID })) .Update(update => update.Action("UpdateMilestone","Milestones")) .Destroy(delete => delete.Action("DeleteMilestone","Milestones"))) %>
我还有一个控制器,我想在Kendo Grid中保存一个新条目.
[HttpPost] public ActionResult CreateMilestone([DataSourceRequest] DataSourceRequest request,Milestone milestone) { if (milestone != null && ModelState.IsValid) { using (TADCEntities database = new TADCEntities()) { tblSymvaseisOrosima item = new tblSymvaseisOrosima { fldEstimatedDate = milestone.EstimatedDate,fldisCompleted = milestone.IsCompleted,fldMilestoneDescription = milestone.MilestoneDescription,fldMilestonesN = milestone.MilestonesN,fldPayment = milestone.Payment,fldPaymentRate = milestone.PaymentRate,fldRealDate = milestone.RealDate,fldStoixeioYpoergouID = milestone.ElementSubProjectID }; database.tblSymvaseisOrosima.Add(item); database.SaveChanges(); return Json(new[] { item }.ToDataSourceResult(request,ModelState)); } } return View(); // should also return json }
问题是,即使我在网格中创建新条目并按保存时输入数据,Milestone类型(控制器中的参数)也始终为null.知道怎么做才能在里程碑参数中传递输入的数据?先感谢您
解决方法
正如我在fiddler中看到的那样,参数是使用模型前缀发布的,因此您必须像这样访问它们:
public ActionResult CreateMilestone([DataSourceRequest] DataSourceRequest request,[Bind(Prefix="models")] List<Milestone> milestons) { Milestone milestone = milestons[0]; . . . }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。