C# 将umbraco网格与自定义viewmodel一起重用
我不熟悉新的umbraco网格功能,对此我有一个问题 我有一个页面,其中有一篇文章,我使用网格功能来显示图像之外的一些图像和文本。这很好用 在该页面的属性中,我设置了一个复选框,表示该文章是否出售,选中该复选框后,该产品应自动显示在待售页面上 我可以在那个页面上找到要出售的产品,但现在我还想在那个页面上显示图像和文本。我创建了一个带有自定义viewmodel的列表,用于保存每个待售产品的内容。问题在于向GetGridHtml函数提供JObject。这个函数需要一个字符串,我正在提供导致错误的属性 获取网格在单独页面上显示的内容的最佳方式是什么C# 将umbraco网格与自定义viewmodel一起重用,c#,razor,umbraco7,C#,Razor,Umbraco7,我不熟悉新的umbraco网格功能,对此我有一个问题 我有一个页面,其中有一篇文章,我使用网格功能来显示图像之外的一些图像和文本。这很好用 在该页面的属性中,我设置了一个复选框,表示该文章是否出售,选中该复选框后,该产品应自动显示在待售页面上 我可以在那个页面上找到要出售的产品,但现在我还想在那个页面上显示图像和文本。我创建了一个带有自定义viewmodel的列表,用于保存每个待售产品的内容。问题在于向GetGridHtml函数提供JObject。这个函数需要一个字符串,我正在提供导致错误的属性
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var home = CurrentPage.Site();
List<ForSaleItemsViewModel> forSaleItemsVM = new List<ForSaleItemsViewModel>();
if(home.Children.Any())
{
foreach(var childPage in home.Children)
{
if(childPage.Children.Any())
{
foreach(var child in childPage.Children)
{
if(child.HasProperty("ForSale") && child.ForSale)
{
forSaleItemsVM.Add(new ForSaleItemsViewModel
{
ID = 1,
Content = child.Content,
Sold = child.Sold
});
}
}
}
}
}
}
<div class="container">
@foreach(var item in forSaleItemsVM)
{
if (item.Sold)
{
<span>SOLD!</span>
}
CurrentPage.GetGridHtml(item.Content.ToString(), "bootstrap3");
}
</div>
@继承Umbraco.Web.Mvc.UmbracoTemplatePage
@{
var home=CurrentPage.Site();
List forSaleItemsVM=新列表();
if(home.Children.Any())
{
foreach(home.childs中的var childPage)
{
if(childPage.Children.Any())
{
foreach(childPage.childs中的var child)
{
if(child.HasProperty(“ForSale”)&child.ForSale)
{
添加(新的ForSaleItemsViewModel
{
ID=1,
Content=child.Content,
售出的,售出的
});
}
}
}
}
}
}
@foreach(forSaleItemsVM中的var项)
{
如果(已售出项目)
{
出售!
}
CurrentPage.GetGridHtml(item.Content.ToString(),“bootstrap3”);
}
根据Umbraco论坛,这是不可能的。我得到了这个答案:
如果您看到有关网格布局最佳实践的文档
有一章是关于网格布局的限制的
.
使用网格布局的限制之一是它不适合
重复使用的内容
它说-没有托管api钻入网格内容和
目标特定单元格内容-因此不建议使用网格布局
可重用内容的存储—它根本不是为此而设计的
脚本如果您希望在多个页面中重用内容,则仍然需要
建议您将这些内容作为单独的内容存储
节点,以便可以像往常一样存储、缓存和查询它们