Kendo ui 剑道网格与自定义弹出编辑器

Kendo ui 剑道网格与自定义弹出编辑器,kendo-ui,kendo-grid,mvc-editor-templates,Kendo Ui,Kendo Grid,Mvc Editor Templates,我以为一切正常,但当我点击更新按钮时,意识到来自自定义编辑器的值没有传递到控制器。它是“选择栅格”行中的原始值 我的网格定义如下,并正确加载数据 @(Html.Kendo().Grid<ET.Data.Models.TowTicketModel>() .Name("gridTicketStatus") .DataSource(dataSource => dataSource .Ajax()

我以为一切正常,但当我点击更新按钮时,意识到来自自定义编辑器的值没有传递到控制器。它是“选择栅格”行中的原始值

我的网格定义如下,并正确加载数据

@(Html.Kendo().Grid<ET.Data.Models.TowTicketModel>()
            .Name("gridTicketStatus")
            .DataSource(dataSource => dataSource
                .Ajax()
                .Model(model => {
                    model.Id(p => p.TicketId);
                    model.Field(p => p.TicketId).Editable(false);
                    model.Field(c => c.CreatedDateTime).Editable(false);
                    model.Field(c => c.AssignedTo).Editable(false);
                    model.Field(c => c.TicketType).Editable(false);
                    model.Field(c => c.Customer.Name).Editable(false);
                    model.Field(c => c.Description).Editable(false);
                    //  model.Field("TicketStatus", typeof(TowTicketStatusModel));
                })
                .Read(read => read.Action("GetTowTickets", "TowDriver"))
                .Update(up => up.Action("UpdateTowDriverTickets", "TowDriver"))

            )
            .Columns(columns =>
            {
                columns.Bound(ticket => ticket.TicketId).Title("Id");
                columns.Bound(ticket => ticket.CreatedDateTime).Title("Date").Width("120px").Format("{0:MM/dd/yyyy}")
                         .HeaderHtmlAttributes(new
                         {
                             //style = "white-space: nowrap; text-overflow: ellipis;"
                             @class = "k-grid td"
                         });
                columns.Bound(ticket => ticket.Customer.Name)
                         .HeaderHtmlAttributes(new
                         {
                             //style = "white-space: nowrap; text-overflow: ellipis;"
                             @class = "k-grid td"
                         });

                columns.Bound(p => p.TicketType)
                .ClientTemplate("#: data.TicketType ? data.TicketType.DisplayValue : '' #")

                .Title("Type")
                .HeaderHtmlAttributes(new
                {
                    //style = "white-space: nowrap; text-overflow: ellipis;"
                    @class = "k-grid td"
                });



                columns.Bound(p => p.TicketStatus)
                .ClientTemplate("#: data.TicketStatus ? data.TicketStatus.DisplayValue : '' #")
                .Title("Status")
                         .HeaderHtmlAttributes(new
                         {
                             //style = "white-space: nowrap; text-overflow: ellipis;"
                             @class = "k-grid td"
                         });

                columns.Bound(ticket => ticket.Description).HeaderHtmlAttributes(new
                {
                    //style = "white-space: nowrap; text-overflow: ellipis;"
                    @class = "k-grid td"
                })
                .HtmlAttributes(new { title = "#= Description #" });

                columns.Bound(p => p.AssignedTo)
                .ClientTemplate("#: data.AssignedTo ? data.AssignedTo.FullName : '' #")

                .Title("AssignedTo")
                         .HeaderHtmlAttributes(new
                         {
                             //style = "white-space: nowrap; text-overflow: ellipis;"
                             @class = "k-grid td"
                         });


                columns.Bound(ticket => ticket.CreatedBy.FullName).Title("CreatedBy").HeaderHtmlAttributes(new
                {
                    //style = "white-space: nowrap; text-overflow: ellipis;"
                    @class = "k-grid td"
                });

                columns.Command(cmd => cmd.Edit());
                //columns.Bound(ticket => ticket.AssignedTo.FullName).Title("AssignedTo");


                // columns.Bound(ticket => product.UnitsInStock);
            })
            .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("TowTicketDriverEditor"))
            // .ToolBar(tb => tb.Save)
            .Pageable()
            .Sortable()
        )
@(Html.Kendo().Grid())
.名称(“gridTicketStatus”)
.DataSource(DataSource=>DataSource
.Ajax()
.Model(Model=>{
Id(p=>p.TicketId);
model.Field(p=>p.TicketId).可编辑(false);
model.Field(c=>c.CreatedDateTime).Editable(false);
model.Field(c=>c.AssignedTo).Editable(false);
model.Field(c=>c.TicketType).可编辑(false);
model.Field(c=>c.Customer.Name).可编辑(false);
model.Field(c=>c.Description).可编辑(false);
//model.Field(“TicketStatus”,typeof(TowTicketStatusModel));
})
.Read(Read=>Read.Action(“GetTowTickets”、“TowDriver”))
.Update(up=>up.Action(“UpdateTowDriverTickets”、“TowDriver”))
)
.列(列=>
{
columns.Bound(ticket=>ticket.TicketId).Title(“Id”);
columns.Bound(ticket=>ticket.CreatedDateTime).Title(“日期”).Width(“120px”).Format(“{0:MM/dd/yyyyy}”)
.HeaderhTMlat贡品(新)
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
});
columns.Bound(票证=>ticket.Customer.Name)
.HeaderhTMlat贡品(新)
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
});
columns.Bound(p=>p.TicketType)
.ClientTemplate(“#:data.TicketType?data.TicketType.DisplayValue:”)
.标题(“类型”)
.HeaderhTMlat贡品(新)
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
});
columns.Bound(p=>p.TicketStatus)
.ClientTemplate(“#:data.TicketStatus?data.TicketStatus.DisplayValue:”)
.头衔(“身份”)
.HeaderhTMlat贡品(新)
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
});
columns.Bound(ticket=>ticket.Description).HeaderHtmlAttributes(新)
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
})
.HtmlAttributes(新的{title=“#=说明#”});
columns.Bound(p=>p.AssignedTo)
.ClientTemplate(“#:data.AssignedTo?data.AssignedTo.FullName:”)
.所有权(“转让给”)
.HeaderhTMlat贡品(新)
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
});
columns.Bound(ticket=>ticket.CreatedBy.FullName).Title(“CreatedBy”).HeaderHtmlAttributes(新
{
//style=“空白:nowrap;文本溢出:ellipis;”
@class=“k-grid td”
});
Command(cmd=>cmd.Edit());
//columns.Bound(ticket=>ticket.AssignedTo.FullName).Title(“AssignedTo”);
//columns.Bound(票证=>product.UnitsInStock);
})
.Editable(Editable=>Editable.Mode(GridEditMode.PopUp).TemplateName(“TowTicketDriverEditor”))
//.ToolBar(tb=>tb.Save)
.Pageable()
.Sortable()
)
我的编辑器包含以下内容

> @model ET.Data.Models.TowTicketModel
> 
> 
> @Html.HiddenFor(model => model.TicketId)
> 
> <div class="container">
>     <div class="row">
>                
>         <div>
>             @Html.LabelFor(model => model.TicketId)
>         </div>
> 
>         <div>
>             @Html.LabelFor(model => model.Customer.Name)
> 
>             @Html.EditorFor(model => model.Customer.Name, new { htmlAttributes = new { disabled = "disabled", @readonly = "readonly" }
> })
>         </div>
>         <div>
>             @(Html.Kendo().DropDownListFor(m => m)
>             .Name("TicketStatus") 
>                                         
>             .DataValueField("TicketId") 
>             .DataTextField("DisplayValue")
>             .Value("StatusId")                               // .Value(Model.StatusId)
>             .DataSource(source =>
>             {
>                 source.Read("GetTowTicketStatuses", "TowDriver")
>                 .ServerFiltering();
>             }))
>         </div>    
>         
>     </div> </div>
@model ET.Data.Models.TowTicketModel
> 
> 
>@Html.HiddenFor(model=>model.TicketId)
> 
> 
>     
>                
>         
>@Html.LabelFor(model=>model.TicketId)
>         
> 
>         
>@Html.LabelFor(model=>model.Customer.Name)
> 
>@Html.EditorFor(model=>model.Customer.Name,new{htmlAttributes=new{disabled=“disabled”,@readonly=“readonly”}
> })
>         
>         
>@(Html.Kendo().DropDownListFor(m=>m)
>.名称(“票务状态”)
>                                         
>.DataValueField(“TicketId”)
>.DataTextField(“显示值”)
>.Value(“StatusId”)/.Value(Model.StatusId)
>.DataSource(source=>
>             {
>source.Read(“GetTowticketStatus”、“TowDriver”)
>.ServerFiltering();
>             }))
>             
>         
>      
最后,我的控制器:

public async Task<ActionResult> UpdateTowDriverTickets([DataSourceRequest] DataSourceRequest request, 
TowTicketModel updated)
            {
                if (updated != null && ModelState.IsValid)
                {
                    await _towProvider.UpdateTowTicketAsync(new UpdateTowTicketRequest(updated));
                }

                return Json(ModelState.ToDataSourceResult());

            }
public异步任务UpdateTowDriverTickets([DataSourceRequest]DataSourceRequest请求,
TowTicketModel(已更新)
{
if(已更新!=null&&ModelState.IsValid)
{
等待提供程序.UpdateTowTicketAsync(新的UpdateTowTicketRequest(更新));
}
返回Json(ModelState.ToDataSourceResult());
}
再次加载网格,单击编辑按钮,弹出窗口打开,dropdownlist通过ajax调用正确填充

但是,我从下拉列表中选择并单击update,UpdateTowDriverTickets的模型参数没有从编辑器下拉列表中选择的值

我确实有一把外国钥匙