【问题标题】:Create dynamic slider in Umbraco using asp net razor使用 asp net razor 在 Umbraco 中创建动态滑块
【发布时间】:2018-05-09 22:17:03
【问题描述】:

我设法使用光滑滑块创建了一个简单的滑块,但它只显示图像列表,而不是滑块,这是我所做的:

  1. 我在我的主文件中链接了所有光滑的滑块文件

        <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
        <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"/>
  1. 在页面末尾添加了用于调用滑块的 javascript。

    $(文档).ready(函数(){ $('.slides').slick({ 自动播放:真, 暂停悬停:真 }); });

  2. 我从部分视图宏文件中创建了一个宏,方法是选择一个名为 gallery 的 sn-p 并对其进行了一些编辑,它的外观如下:

    @inherits Umbraco.Web.Macros.PartialViewMacroPage @* 宏,用于显示来自媒体部分的媒体图像库。 适用于“单一媒体选择器”或“多媒体选择器”宏参数(见下文)。

    How it works:
        - Confirm the macro parameter has been passed in with a value
        - Loop through all the media Id's passed in (might be a single item, might be many)
        - Display any individual images, as well as any folders of images
    
    Macro Parameters To Create, for this macro to work:
    Alias:mediaIds     Name:Select folders and/or images    Type: Multiple Media Picker
                                                            Type: (note: you can use a Single Media Picker if that's more appropriate to your needs)
    

    *@

    @{ var mediaIds = Model.MacroParameters["mediaIds"]; }
    @if (mediaIds != null)
    {
        <div class="slides">
            @foreach (var mediaId in mediaIds.ToString().Split(','))
            {
                var media = Umbraco.Media(mediaId);
    
                @* a single image *@
                if (media.DocumentTypeAlias == "Image")
                {
                    @Render(media);
                }
    
                @* a folder with images under it *@
                if (media.Children("Image").Any())
                {
                    foreach (var image in media.Children("Image"))
                    {
                        @Render(image);
                    }
                }
    
            }
        </div>
    }
    
    @helper Render(dynamic item)
    {
        <div>
        <img src="@item.umbracoFile" alt="@item.Name" />
        </div>
    }
    
  3. 在宏中,我添加了这些参数别名:mediaIds 名称:选择文件和/或图像,输入:多媒体选择器

  4. 我在我的主页上渲染了我的局部视图宏如下:

    @Umbraco.RenderMacro("Gallery", new {mediaIds="1120,1118,1119"})

现在,当我预览我的主页时,我得到一个图像列表而不是我想要的滑块,任何人都可以帮助弄清楚为什么它返回一个图像列表而不是滑块?我是 asp net 和 Umbraco 的新手,

【问题讨论】:

    标签: javascript asp.net razor umbraco


    【解决方案1】:

    您需要获取项目的 URL,而不是访问文件本身:

     <img src="@item.Url" alt="@item.Name" />
    

    我真的建议您使用强类型模型而不是动态模型,它们确实让您的生活更轻松

    【讨论】:

    • 谢谢您,您可能知道是否可以在 umbraco 中使用滑块旋转?如果是的话,你能提供一些关于如何在 umbraco 中实现它的教程
    • 当然可以,Umbraco 不会改变你在前端可以做的任何事情。只需按照插件的说明进行操作即可。尝试使用静态内容安装它,然后将其替换为来自后台的内容。你可以试试这个插件,让内容编辑更简单:our.umbraco.org/projects/backoffice-extensions/uskyslider
    猜你喜欢
    • 2015-09-21
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 2011-02-16
    相关资源
    最近更新 更多