C# 剑道选项卡中的剑道网格使用局部视图

C# 剑道选项卡中的剑道网格使用局部视图,c#,razor,entity-framework-4,kendo-ui,C#,Razor,Entity Framework 4,Kendo Ui,出于某种原因,我可以使用第二个选项卡(产品详细信息)来绑定网格中的记录,尽管GetAllProductList返回记录。请告知,谢谢 index.cshtml HOME/Index.cshtml @(Html.Kendo().TabStrip() .Name("tabstrip") .Items(items => { items.Add().Text("Search") .LoadContentFrom("Index", "P

出于某种原因,我可以使用第二个选项卡(产品详细信息)来绑定网格中的记录,尽管GetAllProductList返回记录。请告知,谢谢

index.cshtml HOME/Index.cshtml

@(Html.Kendo().TabStrip()
    .Name("tabstrip")
    .Items(items =>
    {
        items.Add().Text("Search")
            .LoadContentFrom("Index", "ProductDetails")
            .Selected(true);



        items.Add().Text("Product Details")
       .LoadContentFrom("_ProductData", "ProductDetails")



    })
)
ProductDetails/Index.cshtml

@(Html.Kendo().Grid())

ProductDetails/\u ProductData.chtml(部分页面)

@(Html.Kendo().Grid())
.Name(“ProductGrid”)
.HtmlAttributes(新的{@Style=“align:center;字体大小:10px;宽度:950px”})
.列(列=>
{
columns.Bound(p=>p.ProductId).Width(95);
columns.Bound(p=>p.Name).Width(120);
})
.ToolBar(ToolBar=>ToolBar.Create())
.Sortable()
//.Pageable()
.Pageable(分页=>分页
.输入(错误)
.数字(真)
.PreviousNext(真)
.PageSizes(新的int[]{5,10,25,50})
.刷新(错误)
)
.可选()
.Scrollable()
.column菜单(c=>c.Columns(false))
.DataSource(DataSource=>DataSource
.Ajax()//使用Ajax绑定,而不是服务器绑定
.页面大小(10)
.ServerOperation(真)
.Model(Model=>
{
model.Id(p=>p.ProductId);
})
.Sort(Sort=>Sort
.Add(x=>x.Name).Descending()
.Read(Read=>Read.Action(“GetProductData”、“ProductDetails”).Type(HttpVerbs.Get))
)
)
**产品详细信息控制器**
公共行动结果索引()
{ 
返回视图();
} 
///选项卡1的显示
公共操作结果GetBookData([DataSourceRequest]DataSourceRequest请求)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
返回Json(GetAllBookList().ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
}
私有静态IEnumerable GetAllBookList()
{
使用(var dc=new HHEntities())
{
var result=(来自dc.Books中的
选择新图书模型
{
BookId=a.BookId,
姓名
});
返回result.Distinct().ToList();
}
}
///选项卡2的显示
公共操作结果GetProductData([DataSourceRequest]DataSourceRequest请求)
{
Response.Cache.SetCacheability(HttpCacheability.NoCache);
返回Json(GetAllProductList().ToDataSourceResult(请求),JsonRequestBehavior.AllowGet);
}
以下内容将返回记录,但由于某种原因,它将绑定到“产品详细信息”选项卡中的网格

       /// <summary>

        /// </summary>
        /// <returns></returns>
        private static IEnumerable<ProductModel> GetAllProductList()
        {
            using (var dc = new HHEntities())
            {
                var result = (from a in dc.Products

                              select new ProductModel
                              {
                                  ProductId= a.ProductId,
                                  Name= a.Name,
                                  Description= a.Description,
                                  ExpiryDate= a.ExpiryDate


                              });
                return result.Distinct().ToList();
            }


        }

    public ActionResult __ProductData()
  { return PartialView();}
//
/// 
/// 
私有静态IEnumerable GetAllProductList()
{
使用(var dc=new HHEntities())
{
var结果=(来自dc.Products中的a)
选择新产品型号
{
ProductId=a.ProductId,
Name=a.Name,
描述,
expireydate=a.expireydate
});
返回result.Distinct().ToList();
}
}
公共行动结果\uuuu ProductData()
{返回PartialView();}

我怀疑问题在于两个网格使用相同的HTML id属性呈现(通过
Name()
方法设置)。您需要为网格指定唯一的名称。例如,您可以在呈现包含网格的局部视图的操作方法的
ViewData
中放置一些索引。然后在局部视图本身中使用该索引使网格名称唯一:

@(Html.Kendo().Grid<HH.PrductModel>()
      .Name("Product" + ViewData["index"])
@(Html.Kendo().Grid())
.Name(“产品”+视图数据[“索引”])

我怀疑问题在于两个网格使用相同的HTML id属性呈现(通过
Name()
方法设置)。您需要为网格指定唯一的名称。例如,您可以在呈现包含网格的局部视图的操作方法的
ViewData
中放置一些索引。然后在局部视图本身中使用该索引使网格名称唯一:

@(Html.Kendo().Grid<HH.PrductModel>()
      .Name("Product" + ViewData["index"])
@(Html.Kendo().Grid())
.Name(“产品”+视图数据[“索引”])

又是什么问题?你说你可以绑定网格。它只是显示空网格。这真的很奇怪。即使我在GetAllProductList中检查var结果,它也会显示记录。谢谢。又是什么问题?你说你可以绑定网格。它只是显示空网格。这真的很奇怪。即使我检查了var结果从GetAllProductList中显示记录。谢谢Hi Atanas,谢谢我将尝试Hi Atanas,我已修改了代码。请您提供建议。谢谢我没有看到您的代码更改名称()是网格的。试试看。为什么第一个选项卡加载的是一个完整的页面而不是部分视图?嗨,阿塔纳斯,谢谢。我会试试的。嗨,阿塔纳斯,我已经修改了代码。谢谢。我没有看到你的代码更改网格的名称()。试试看。还有,为什么第一个选项卡加载的是一个完整的页面而不是部分视图?
@(Html.Kendo().Grid<HH.PrductModel>()
      .Name("Product" + ViewData["index"])