我有一个名为访问类型的表,每个访问类型都有我需要用它的父亲保存这个列表的访问类型技能列表但是当我点击Kendo Grid中的更新按钮时,访问类型技能列表仍然是空的 .
This is the AddEditVisitType.cshtml code
@model Evo.FieldFlow.Business.ViewModels.VisitTypeViewModel
基本细节@ Html.LabelFor(model => model.VisitTypeName,"Visit Type Name",htmlAttributes:new {@class = "control-label 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 = " control-label 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>
This is the Action Create
[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
});
}
}
This is the Object Properties
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