Content management system CMS管理的图像在某些重新加载时的高度和宽度为0

Content management system CMS管理的图像在某些重新加载时的高度和宽度为0,content-management-system,c1-cms,Content Management System,C1 Cms,我正在使用复合C1 CMS v4.2更新1。在我的一些使用媒体部分和媒体部分的一些编程图像填充的页面中,我定期为所有从媒体部分出来的图像获取0的宽度和高度,除非我专门输入图像的宽度和高度。下面是以编程方式填充的图像的示例。我想我可以尝试通过代码填充高度和宽度,但是复合C1似乎使用下面的MediaURL()方法来实现这一点,在某些情况下,它恰好使它们为0。在CMS内容部分,当我特别添加高度和宽度时,它可以正常工作,但是WYSIWYG图像属性中没有高度和宽度对话框,因此您必须进入源代码并手动编辑IM

我正在使用复合C1 CMS v4.2更新1。在我的一些使用媒体部分和媒体部分的一些编程图像填充的页面中,我定期为所有从媒体部分出来的图像获取0的宽度和高度,除非我专门输入图像的宽度和高度。下面是以编程方式填充的图像的示例。我想我可以尝试通过代码填充高度和宽度,但是复合C1似乎使用下面的MediaURL()方法来实现这一点,在某些情况下,它恰好使它们为0。在CMS内容部分,当我特别添加高度和宽度时,它可以正常工作,但是WYSIWYG图像属性中没有高度和宽度对话框,因此您必须进入源代码并手动编辑IMG标记。希望我在这里犯了严重的错误,因为这对我们来说似乎是个问题

@{
    string folderPath = CurrentPageNode.Url.Substring(10).Replace("/","_");
    folderPath = "/" + folderPath;
    var images = Data.Get<IImageFile>().Where(image => image.FolderPath == folderPath).OrderBy(image => image.FileName).ToList();
    string cssClass = "";
 }

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://www.composite.net/ns/function/1.0">
<head>
</head>
<body>      
    <div class="row">
        @foreach (var image in images)
        {
            if (image.FileName.Length > 11 && image.FileName.ToLower().Substring(0,11) == "application")
            {
                cssClass = image.FileName.Substring(image.FileName.IndexOf("_")+1).Replace(".png","");
                <div class="col-md-12">
                    <div class="application">
                        <a href="@image.Description">
                            <img src="@Html.C1().MediaUrl(image)" alt="@image.Title" />
                        </a>
                        <a href="@image.Description">
                            <div class="squareText @cssClass">@image.Title</div>
                        </a>
                    </div>
                </div>
            }
        }
    </div>
</body>
@{
字符串folderPath=CurrentPageNode.Url.Substring(10).替换(“/”,“”);
folderPath=“/”+folderPath;
var images=Data.Get().Where(image=>image.FolderPath==FolderPath).OrderBy(image=>image.FileName.ToList();
字符串cssClass=“”;
}
@foreach(图像中的var图像)
{
if(image.FileName.Length>11&&image.FileName.ToLower().Substring(0,11)=“应用程序”)
{
cssClass=image.FileName.Substring(image.FileName.IndexOf(“”)+1)。替换(“.png”,”);
}
}

所见即所得图像属性中没有“高度和宽度”对话框

在Visual Editor的页面上手动插入图像时,可以在“图像属性”对话框的“高级”选项卡上设置“最大宽度”和/或“最大高度”

(请参阅)

在标记中,它将向图像URL添加两个参数,例如:

<img src="~/media(40ef35a6-2ed9-4daa-a5db-c47ecc13e6d6)?mw=20&amp;mh=20" />
<img src="~/media(@Image)" />

复合C1中的图像URL支持更多的参数(例如宽度为“w”,高度为“h”),您可以在构建它们时使用这些参数。有关参数的更多信息,请参见:

至于构建URL,在C1 Razor函数中,至少有两种方法可以做到这一点:

使用此选项时,例如:

<img src="~/media(40ef35a6-2ed9-4daa-a5db-c47ecc13e6d6)?mw=20&amp;mh=20" />
<img src="~/media(@Image)" />


只需附加参数,甚至使用变量作为值。比如说,您的Razor函数有两个输入参数,如宽度和高度,您可以这样做:

<img src="~/media(@Image)?mw=@Width&amp;@Height" />
<img src="@Html.C1().MediaUrl(@Image)?mw=@Width&amp;@Height" />


希望所有这些信息都能帮助您完成任务。

感谢您的回复,尽管我在提交此问题之前确实尝试了mw,mh属性。为了简洁起见,我把这个问题撇在了一边,尽管那可能是个错误。我只是尝试了w=45和h=45属性,但不幸的是,它也不能解决这个问题。我仍然需要使用标准的HTML宽度和高度属性,否则它会定期为我的图像指定宽度和高度0。