Razor 获取要在分页列表中显示的图像时出现问题
我有下面的代码,它在底部显示列出的文本和分页。但是,当我试图将子页面中的图像放入列表时,我会出错。你知道为什么吗Razor 获取要在分页列表中显示的图像时出现问题,razor,umbraco,umbraco7,Razor,Umbraco,Umbraco7,我有下面的代码,它在底部显示列出的文本和分页。但是,当我试图将子页面中的图像放入列表时,我会出错。你知道为什么吗 @inherits Umbraco.Web.Mvc.UmbracoTemplatePage @{ Layout = "SiteLayout.cshtml"; } <div role="main" id="main"> <div id="blogPageFeatures"> <!-- loop through all
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "SiteLayout.cshtml";
}
<div role="main" id="main">
<div id="blogPageFeatures">
<!-- loop through all of the child pages (blog posts) and grab data to output as a summary -->
@{
var pageSize =3;
var page =1;int.TryParse(Request.QueryString["page"],out page);
var items =Model.Content.Children().Where(x => x.IsDocumentType("BlogArticle")).OrderByDescending(x => x.CreateDate);
var totalPages =(int)Math.Ceiling((double)items.Count()/(double)pageSize);
if(page > totalPages)
{
page = totalPages;
}
else if(page <1)
{
page =1;
}
}
@foreach(var item in items.Skip((page -1)* pageSize).Take(pageSize))
{
<a href="@item.Url">
<!-- The next image line is where it errors -->
<img src="@Umbraco.Media(item.Children.blogArticleImage).Url">
<h2>@item.Name</h2>
<p class="blogTileDate">@item.CreateDate.ToString("dd/MM/yy")</p>
</a>
}
<div class="clearfix"></div>
<!-- Pagination START -->
@if(totalPages >1)
{
<div class="pagination">
<ul>
@if(page >1)
{
<li><a href="?page=@(page-1)">Prev</a></li>
}
@for(int p =1; p < totalPages +1; p++)
{
var active =(p == page)?" class=\"active\"":string.Empty;
<li@(Html.Raw(active))>
<a href="?page=@p">@p</a>
</li>
}
@if(page <totalPages)
{
<li><a href="?page=@(page+1)">Next</a></li>
}
</ul>
</div>
}
<!-- Pagination END -->
<div class="clearfix"></div>
</div>
<div class="clearfix"></div>
</div>
@继承Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout=“siteloayout.cshtml”;
}
@{
var pageSize=3;
var page=1;int.TryParse(Request.QueryString[“page”],out page);
var items=Model.Content.Children().Where(x=>x.IsDocumentType(“博客文章”)).OrderByDescending(x=>x.CreateDate);
var totalPages=(int)Math.天花((double)items.Count()/(double)pageSize);
如果(页面>总页面)
{
页码=总页数;
}
否则,如果(第页)
@如果(共1页)
{
@如果(第1页)
{
}
@对于(int p=1;p
}
@如果(第页)
您将获得Model.Content.Children,这是IPPublishedContent对象的强类型集合。然后,您将调用item.Children.blogatilimage,这将不起作用,因为您试图获取项的子级上的a属性,而不是项本身的属性。您还尝试使用动态语法,这不会起作用在强类型对象上单击rk。请尝试将图像代码更改为:
<img src="@Umbraco.TypedMedia(item.GetPropertyValue<int>("blogArticleImage")).Url">
(“blogArticleImage”).Url>
这应该可以做到,有一点需要注意的是,如果某个项目没有图像集,或者已选择的图像已被删除,它将抛出一个错误。更可靠的方法是这样的:
var imageSrc = "ADD DEFAULT IMAGE PATH HERE";
var media = Umbraco.TypedMedia(item.GetPropertyValue<int>("blogArticleImage"));
if (media != null && !string.IsNullOrEmpty(media.Url))
{
imageSrc = media.Url;
}
<mig src="@imageSrc">
var imageSrc=“在此处添加默认图像路径”;
var media=Umbraco.TypedMedia(item.GetPropertyValue(“blogArticleImage”);
if(media!=null&&!string.IsNullOrEmpty(media.Url))
{
imageSrc=media.Url;
}
您将获得Model.Content.Children,这是IPPublishedContent对象的强类型集合。然后您将调用item.Children.blogatilimage,这将不起作用,因为您试图获取项的子项上的a属性,而不是项本身的属性。您还尝试使用动态语法,这将在上,无法处理强类型对象。请尝试将图像代码更改为:
<img src="@Umbraco.TypedMedia(item.GetPropertyValue<int>("blogArticleImage")).Url">
(“blogArticleImage”).Url>
这应该可以做到,有一点需要注意的是,如果某个项目没有图像集,或者已选择的图像已被删除,它将抛出一个错误。更可靠的方法是这样的:
var imageSrc = "ADD DEFAULT IMAGE PATH HERE";
var media = Umbraco.TypedMedia(item.GetPropertyValue<int>("blogArticleImage"));
if (media != null && !string.IsNullOrEmpty(media.Url))
{
imageSrc = media.Url;
}
<mig src="@imageSrc">
var imageSrc=“在此处添加默认图像路径”;
var media=Umbraco.TypedMedia(item.GetPropertyValue(“blogArticleImage”);
if(media!=null&&!string.IsNullOrEmpty(media.Url))
{
imageSrc=media.Url;
}
您遇到的错误是什么?这是我的朋友:编译器错误消息:CS1061:“System.Collections.Generic.IEnumerable”不包含“blogArticleImage”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型第一个参数的扩展方法“blogArticleImage”(是否缺少using指令或程序集引用?)您遇到的错误是什么?这是my friend:编译器错误消息:CS1061:“System.Collections.Generic.IEnumerable”不包含“blogArticleImage”的定义,并且找不到接受类型为“System.Collections.Generic.IEnumerable”的第一个参数的扩展方法“blogArticleImage”(您是否缺少使用指令或程序集引用?)太好了!非常感谢您的帮助。太好了!非常感谢您的帮助。