【问题标题】:Umbraco Razor - Pass Array to JavascriptUmbraco Razor - 将数组传递给 Javascript
【发布时间】:2015-12-04 11:53:33
【问题描述】:

我在 Razor 中有一个 foreach 循环,它从 Umbraco 的多媒体选择器中获取图像。 Response.Write 只是让我看到图像显示正常(它们是)所以你可以忽略这一点。

我的问题是,如何使用 Javascript 函数使用图像 URL 填充图像标记? (见下文目前不工作的)。

Razor 视图/CSHTML

var imagesList = portfolioItem.GetPropertyValue<string>("Images").Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
var imagesCollection = Umbraco.TypedMedia(imagesList);

foreach (var imageItem in imagesCollection)
{   
    Response.Write("<img src='"+ @imageItem.Url +"' />");
}

Javascript

openInfoWindow = function (name, imagesCollection, location, mw, url, marker) {
    var infoText = "<img src='" + imagesCollection + "' alt='" + imagesCollection + "'title='" + imagesCollection + "' />";
}

【问题讨论】:

    标签: javascript asp.net-mvc asp.net-mvc-4 razor umbraco7


    【解决方案1】:

    如果您使用 razor 将 url 设置为不可见的输入值,请尝试使用 jquery。然后使用 jquery 提取该值并使用以下命令将其添加到 img 标签本身: var inputVal = $("输入").val(); $("#my_image").attr("src",inputVal );

    如果你把不可见的输入值作为一个变量,你可以像上面展示的那样设置 img atr ursing jquery。

    【讨论】:

    • 好主意,但它只拍摄图像数组中的第一张图像。
    • 尝试创建一个 for 循环并将其设置为按数组长度循环,然后使用 i 在 for 循环中获取该数字元素,然后使用它填充图像 src
    • 我不太喜欢这种方法,因为会在 HTML 元素中加载大量图像。虽然是隐藏的,但加载它们仍然需要一些时间,而且这是在谷歌地图上,所以可能需要一段时间才能加载。
    猜你喜欢
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 2020-05-10
    • 2013-05-25
    • 2011-05-16
    • 2014-05-03
    相关资源
    最近更新 更多