Kendo DropDownList对于控制器没有结束信息

时间:2016-09-01 21:12:00

标签: asp.net asp.net-mvc razor kendo-ui kendo-dropdown

这令人费解。在我的一个MVC模型$rootScope中,我有两个属性,它们都保存了其他模型的ID,就像这样。

Project

我使用自定义编辑器,在其中使用kendo下拉列表编辑这些字段,使用各自的名称和ID作为文本和值字段。

public class Project
{
    ...
    public int PlatformID { get; set; }
    public int DepartmentID { get; set; }
    ...
}

<div class="col-md-11 details-item"> @Html.LabelFor(m => m.PlatformID, new { @class = "col-md-4 details-label" }) @(Html.Kendo().DropDownListFor(m => m.PlatformID) .Name("PlatformID") .DataValueField("ID") .DataTextField("PlatformName") .BindTo((System.Collections.IEnumerable)ViewData["Platforms"]) .HtmlAttributes(new { @class = "col-md-7 details-editor" }) ) </div> <div class="col-md-11 details-item"> @Html.LabelFor(m => m.DepartmentID, new { @class = "col-md-4 details-label" }) @(Html.Kendo().DropDownListFor(m => m.DepartmentID) .Name("DepartmentID") .DataValueField("ID") .DataTextField("Name") .BindTo((System.Collections.IEnumerable)ViewData["Departments"]) .HtmlAttributes(new { @class = "col-md-7 details-editor" }) ) </div> 完全保存,但是PlatformID甚至没有被发送到控制器,真是太疯狂了。如果DepartmentID是我在编辑时唯一更改的内容,则它甚至不会注册已进行的更改。否则,它将作为默认值0发送。

DepartmentID课程非常简单。

Department

public class Department { [Key] public int ID { get; set; } [DisplayName("Department Name")] public string Name { get; set; } } 基本相同。也许我错过了一些愚蠢的事情,或者也许还有邪恶的事情。感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

找出答案 - 如果项目可以为空,那么在编辑器模板中使用DropDown是行不通的!所以我只是在项目模型中将public int? DepartmentID更改为public int DepartmentID,生活又恢复了良好。