Asp.net mvc 4 为相同属性但不同的视图模型设置唯一的编辑器模板

Asp.net mvc 4 为相同属性但不同的视图模型设置唯一的编辑器模板,asp.net-mvc-4,kendo-ui,kendo-grid,Asp.net Mvc 4,Kendo Ui,Kendo Grid,我有一个使用kendo tap strip的应用程序,因此所有字段在所有打开的选项卡中都应该有唯一的名称,我唯一的问题是如何为同一属性名称创建多个外键编辑器模板,该属性名称对于多个网格具有唯一的名称,因为组合框应该与视图模型属性名称具有相同的名称,如果我使用相同的名称创建多个组合框编辑器模板,它将在系统中返回冲突,那么这里是否有我可以使用的解决方法 简单地说 假设我有两个网格(销售订单和采购订单),两个网格都有外键列“Supplier”-两个表中的外键SupplierID-,我为每个网格创建两个

我有一个使用kendo tap strip的应用程序,因此所有字段在所有打开的选项卡中都应该有唯一的名称,我唯一的问题是如何为同一属性名称创建多个外键编辑器模板,该属性名称对于多个网格具有唯一的名称,因为组合框应该与视图模型属性名称具有相同的名称,如果我使用相同的名称创建多个组合框编辑器模板,它将在系统中返回冲突,那么这里是否有我可以使用的解决方法

简单地说 假设我有两个网格(销售订单和采购订单),两个网格都有外键列“Supplier”-两个表中的外键SupplierID-,我为每个网格创建两个编辑器模板 此处为我的模板(两个模板相同)


因此,如果我同时打开两个网格,就会出现一个错误,因为两个网格都有同名的外键组合框(SupplierID)

请查看剑道UI论坛的以下帖子:

通过使用ViewData将网格名称传递给编辑器模板,并将组合框的ID属性设置为网格名称+属性名称,我的问题得以解决

 Html.Kendo().ComboBox().DataTextField("SupplierID")
        .DataValueField("SupplierID")
        .Name("SupplierID")
    .Filter("contains")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetSuppliers", "Item");
        })
        .ServerFiltering(true);
    })

     .HtmlAttributes(new Dictionary<string, object> {

            { "id" , ViewData["GridName"] + "_Supplier" }
        })
Html.Kendo().ComboBox().DataTextField(“供应商ID”)
.DataValueField(“供应商ID”)
.名称(“供应商ID”)
.过滤器(“包含”)
.DataSource(source=>
{
source.Read(Read=>
{
阅读。行动(“获取供应商”、“项目”);
})
.ServerFiltering(true);
})
.HtmlAttributes(新词典){
{“id”,ViewData[“GridName”]+“_供应商”}
})

很难理解你想做什么——考虑添加一些代码来说明你的问题。我增加了更多的描述和代码。
 Html.Kendo().ComboBox().DataTextField("SupplierID")
        .DataValueField("SupplierID")
        .Name("SupplierID")
    .Filter("contains")
    .DataSource(source =>
    {
        source.Read(read =>
        {
            read.Action("GetSuppliers", "Item");
        })
        .ServerFiltering(true);
    })

     .HtmlAttributes(new Dictionary<string, object> {

            { "id" , ViewData["GridName"] + "_Supplier" }
        })