asp.net-mvc – MVC Model Binding不适用于Kendo Grid

在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 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WPF...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这...
Some samples are below for ASP.Net web form controls:(from http://www.visualize.uk.com/resources/asp
问题描述: 对于未定义为 System.String 的列,唯一有效的值是(引发异常)。 For columns not defined as System.String, the only vali
最近用到了CalendarExtender,结果不知道为什么发生了错位,如图在Google和百度上找了很久,中文的文章里面似乎只提到了如何本地化(就是显示中文的月份)以及怎么解决被下拉框挡住的问题,谈
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence changed a lot since 1.1. Here is the order: App
静态声明: &#39; Style=&quot;position: relative&quot; AppendDataBoundItems=&quot;True&quot;&gt; (无 或 空 或
以下内容是从网络上搜集资料,然后整理而来的。不当之处,请不吝指教。(The following were from network, and edited by myself. Thanks in a
Imports System Imports System.Reflection Namespace DotNetNuke &#39;*********************************
Ok so you have all seen them: “8 million tools for web development”, “5 gagillion tools that if you
以下内容来源于: http://blog.csdn.net/cuike519/archive/2005/09/27/490316.aspx 问:为什么Session在有些机器上偶尔会丢失? 答:可能和
以下文章提到可以用“http://localhost/MyWebApp/WebAdmin.axd”管理站点: ---------------------------------------------
Visual Studio 2005 IDE相关的11个提高开发效率的技巧 英文原创来源于: http://www.chinhdo.com/chinh/blog/20070920/top-11-vis
C#日期格式化 from: http://51xingfu.blog.51cto.com/219185/46222 日期转化一 为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007
from: http://www.nikhilk.net/UpdateControls.aspx Two controls that go along with the UpdatePanel and
Open the report in the Designer. In the ToolBox, select/expand the &quot;Report Items&quot; section.
from: http://drupal.org/node/75844 Do this: find which TinyMCE theme you are using. For the sake of
asp.net中给用户控件添加自定义事件 用户控件中定义好代理和事件: public delegate void ItemSavedDelegate(object sender, EventArgs
在Windows版本的Safari中浏览以下的页面。 http://www.asp.net/AJAX/Control-Toolkit/Live/Calendar/Calendar.aspx Calen
http://aspnet.4guysfromrolla.com/articles/021506-1.aspx By Scott Mitchell Introduction When creating