Как сохранить список детей с родителями в Kendo UI MVC? - PullRequest
0 голосов
/ 21 октября 2018

У меня есть таблица с названием тип посещения, у каждого типа посещения есть список навыков с типом посещения. Мне нужно сохранить этот список со своим родителем, но когда я нажимаю кнопку «Обновить» в Kendo Grid, список навыков с типом посещения по-прежнему пуст.

Это код AddEditVisitType.cshtml

@ model Evo.FieldFlow.Business.ViewModels.VisitTypeViewModel

Основные сведения @ Html.LabelFor (model => model.VisitTypeName, ""Имя типа посещения ", htmlAttributes: new {@class =" контрольная метка col-md-4 col-sm-12 col-xs-12 "}) @ (Html.Kendo (). TextBox () .Name (" VisitTypeName") .HtmlAttributes (new {@required =" ", @autocomplete =" off ", @class =" form-control "})) @ Html.LabelFor (model => model.VisitTypeCode," Код типа посещения ", htmlAttributes: new {@class = "контрольная метка col-md-4 col-sm-12 col-xs-12"}) @ (Html.Kendo (). TextBox () .Name ("VisitTypeCode") .HtmlAttributes (new{@required = "", @autocomplete = "off", @class = "form-control"}))
        </div>
    </div>



    <div id="accordion-styled">
        <div class="card">
            <div class="card-header bg-primary">
                <h6 class="card-title">
                    <a data-toggle="collapse" class="text-white" href="#accordion-styled-group3">Skill</a>
                </h6>
            </div>
            <div id="accordion-styled-group3" class="collapse show" data-parent="#accordion-styled">
                <div class="card-body">
                    @(Html.Kendo().Grid<Evo.FieldFlow.Business.ViewModels.VisitTypeSkillViewModel>()
                                                                                                    .Name("VisitTypeSkillGrid")
                                                                                                    .Columns(columns =>
                                                                                                    {
                                                                                                        columns.ForeignKey(x => x.SkillID, (System.Collections.IEnumerable)ViewData["Skills"], "SkillID", "SkillName").Title("Skill").EditorTemplateName("SkillDropdownBox").Groupable(true).Width(200);
                                                                                                       // columns.Bound(p => p.IsActive).Title("Active").EditorTemplateName("IsActiveCheckBox").ClientTemplate("<input disabled type='checkbox' \\#=IsActive ? checked='checked' :'' \\# />").Groupable(true).Width(200);
                                                                                                        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(230);

                                                                                                    })
                                                                                                    .Editable(editable => editable.Mode(GridEditMode.InLine))
                                                                                                    .ToolBar(toolbar =>
                                                                                                    {
                                                                                                        toolbar.Create().Text("Add New Visit Type Skill");
                                                                                                    })
                                                                                                    .DataSource(dataSource => dataSource
                                                                                                    .Ajax()
                                                                                                    .PageSize(20)
                                                                                                    .ServerOperation(true)
                                                                                                    .Model
                                                                                                    (model =>
                                                                                                    {
                                                                                                        model.Id(p => p.VisitTypeSkillID);
                                                                                                    }
                                                                                                    )
                                                                                                    .Create("CreateSkill", "VisitType", new { ID = Model.VisitTypeID.ToString() })
                                                                                                    .Read("ReadListSkill", "VisitType", new { ID = Model.VisitTypeID.ToString() })
                                                                                                    .Update("EditSkill", "VisitType", new { ID = Model.VisitTypeID.ToString() })
                                                                                                    .Destroy("DeleteSkill", "VisitType")
                                                                                                    )
                                                                                                    .Pageable()
                                                                                                    .Sortable()
                                                                                                    .Scrollable()
                                                                                                    .Filterable()
                                                                                                    .Groupable()
                    )
                </div> 
            </div>
        </div>



    </div>

</div>
</div>



<style>
    .k-edit-form-container {
        width: 100% !important;
        box-sizing: border-box;
    }

        .k-edit-form-container .w-100 {
            padding: 15px;
            box-sizing: border-box;
        }
</style>

Это действие Создать

[HttpPost]
    public ActionResult Create([DataSourceRequest] DataSourceRequest request, VisitTypeViewModel VisitType)
    {
        try
        {
            VisitType.CreatedByWorkerID = new Guid(Convert.ToString(Profile["UserID"]));
            int result = _VisitTypebusiness.InsertVisitType(VisitType);
            if (result != 0)
            {
                return Json(new[] { VisitType }.ToDataSourceResult(request, ModelState));
            }
            else
            {
                var jsonResult = Json(_VisitTypebusiness.GetAllVisitTypes().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
                jsonResult.MaxJsonLength = int.MaxValue;
                return jsonResult;
            }
        }
        catch (Exception ex)
        {
            return this.Json(new DataSourceResult
            {
                Errors = ex.Message
            });
        }
    }

Это свойства объекта

public class VisitTypeViewModel
{

    public int VisitTypeID { get; set; }
    [Required(ErrorMessage = "The Visit Type Name is Required")]
    public string VisitTypeName { get; set; }
    public string VisitTypeCode { get; set; }
    public Nullable<System.Guid> CreatedByWorkerID { get; set; }
    public System.DateTime DateCreated { get; set; }
    public System.DateTime LastUpdated { get; set; }
   public List<VisitTypeSkillViewModel> VisitTypeSkills { get; set; }

}

Когда я отлаживаю его, я вижу, что VisitTypeSkills имеет значение null

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...