Razor 用于下拉列表的KendoUI编辑器模板不适用于添加项选项
我有一个4列的KendoUI web界面 1-环境名称,2-环境代码3-服务器详细信息4-项目详细信息 它们都使用编辑器模板下拉列表来显示环境名称以外的值,而环境名称只是一个文本字段。 当我单击Edit并从所有三个下拉列表中选择值时,它会将值完美地发送到控制器并更新数据库。但是,如果我单击“添加新项”按钮,则“服务器详细信息”下拉列表和“项目详细信息”下拉列表不会将值发送到控制器 这是cs html文件Razor 用于下拉列表的KendoUI编辑器模板不适用于添加项选项,razor,kendo-ui,kendo-asp.net-mvc,Razor,Kendo Ui,Kendo Asp.net Mvc,我有一个4列的KendoUI web界面 1-环境名称,2-环境代码3-服务器详细信息4-项目详细信息 它们都使用编辑器模板下拉列表来显示环境名称以外的值,而环境名称只是一个文本字段。 当我单击Edit并从所有三个下拉列表中选择值时,它会将值完美地发送到控制器并更新数据库。但是,如果我单击“添加新项”按钮,则“服务器详细信息”下拉列表和“项目详细信息”下拉列表不会将值发送到控制器 这是cs html文件 @(Html.Kendo().Grid<EnvironmentPOCO>()
@(Html.Kendo().Grid<EnvironmentPOCO>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(d => d.EnvironmentName).Width(200).Title("Environment Name");
columns.ForeignKey(d => d.EnvironmentTypeID, (List<EnvironmentTypePOCO>)ViewData["EnvironmentType"], "EnvironmentTypeID", "EnvironmentTypeCode").Width(150).Title("Environment Code").EditorTemplateName("_EnvironmentCodeDropDown");
columns.ForeignKey(d => d.Server_ID, (List<ServerPOCO>)ViewData["Servers"], "Server_ID", "ServerName").Width(300).Title("Server Details").EditorTemplateName("_ServerDropDown");
columns.ForeignKey(d => d.Project_ID, (List<SynergyProjectPOCO>)ViewData["SynergyProjects"], "Project_ID", "ProjectName").Width(400).Title("Project Details").EditorTemplateName("_ProjectNameDropDown");
// columns.ForeignKey(d => d.ServerID, (List<ServerPOCO>)ViewData["ServerDetails"], "ServerID", "ServerIP").Width(200).Title("Server IP")/*.EditorTemplateName("_ServerIPDropDown")*/;
// columns.ForeignKey(d => d.ProjectID, (List<SynergyProjectPOCO>)ViewData["SynergyProjects"], "ProjectID", "ProjectDescription").Width(200).Title("ProjectDescription")/*.EditorTemplateName("_ProjectDescription")*/;
columns.Command(d =>
{
d.Edit();
d.Destroy();
}).Width(200).Title("Action");
}
)
.ToolBar(tools => tools.Create())
.Sortable()
.Pageable()
.AutoBind(true)
.Filterable()
//.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Field(m => m.EnvironmentTypeID);
model.Field(m => m.Server_ID);
model.Field(m => m.Project_ID);
model.Field(m => m.EnvironmentName);
model.Id(m => m.EnvironmentID);
})
.Read(read => read.Url(ViewBag.ApiBaseUrl).Type(HttpVerbs.Get))
.Create(create => create.Url(ViewBag.ApiBaseUrl).Type(HttpVerbs.Post))
.Update(update => update.Url(ViewBag.ApiBaseUrl).Type(HttpVerbs.Put))
.Destroy(destroy => destroy.Url(ViewBag.ApiBaseUrl).Type(HttpVerbs.Delete))
)
)
_环境代码下拉编辑器模板
_项目名称下拉编辑器模板
@使用List.Model.Model
@(Html.Kendo().DropDownListFor(m => m)
.Name("Project_ID")
.OptionLabel("Select Project Name")
.DataTextField("ProjectName")
.DataValueField("Project_ID")
.BindTo((List<SynergyProjectPOCO>)ViewData["SynergyProjects"])
)
@(Html.Kendo().DropDownListFor(m => m)
.Name("Server_ID")
.OptionLabel("Select Server")
.DataTextField("ServerName")
.DataValueField("Server_ID")
.BindTo((List<ServerPOCO>)ViewData["Servers"])
)
_服务器下拉编辑器模板
@使用List.Model.Model
@(Html.Kendo().DropDownListFor(m => m)
.Name("Project_ID")
.OptionLabel("Select Project Name")
.DataTextField("ProjectName")
.DataValueField("Project_ID")
.BindTo((List<SynergyProjectPOCO>)ViewData["SynergyProjects"])
)
@(Html.Kendo().DropDownListFor(m => m)
.Name("Server_ID")
.OptionLabel("Select Server")
.DataTextField("ServerName")
.DataValueField("Server_ID")
.BindTo((List<ServerPOCO>)ViewData["Servers"])
)
我认为上面的代码没有任何问题,您的数据库中一定有问题。请检查您的数据库外部列是否必须设置为非空。这可能会解决您的问题。不确定问题出在哪里。您是说,当您单击“添加新记录”并输入记录的详细信息并提交时,这些新记录的详细信息还是未发布到控制器?创建方法的ViewBag.ApiBaseUrl是什么?您是否使用相同的URL进行创建、编辑和销毁?