代码之家  ›  专栏  ›  技术社区  ›  codingbadger

ASP.NET MVC 2和动态JavaScript

  •  1
  • codingbadger  · 技术社区  · 16 年前

    我有一个无序列表,当一个项目被点击时,它会使用FancyBox JavaScript插件显示几个图像。

    我正在尝试将其转换为ASP.NET MVC 2,我希望动态地将图像路径和标题等传递给JavaScript,这样它们就不会被硬编码。

    HTML

      <ul>
        <li><a href="DisplayImages();" title="Images"> Show Images</a></li>
        </ul>
    

    JavaScript

    function DisplayImages() {
    
        $.fancybox([
    { 'href': 'Image Path goes here', 'title': 'Image Title goes here' },
    { 'href': 'Another Image path goes here', 'title': 'Another image title' }
    ], {
        'padding': 0,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'image',
        'changeFade': 0
    
    })
    };
    

    这可以吗?任何帮助都非常感谢

    谢谢

    1 回复  |  直到 16 年前
        1
  •  0
  •   Arnis Lapsa    16 年前

    如果我正确理解你,你可能在寻找:

    function DisplayImages() {
      $.fancybox([
        { 'href': '<%= Model.ImagePath %>', 
          'title': '<%= Model.ImageTitle %>' },
        { 'href': '<%= Model.AnotherImagePath %>', 
          'title': '<%= Model.AnotherImageTitle %>' }], 
        {'padding': 0 //yada yada}    
       })
    };
    

    假设您在aspx/ascx视图中编写此代码,它将直接将数据从服务器端嵌入到呈现的HTML中,类似于' echo 在PHP中。

    模型是您将从控制器传递到视图的对象。

    这里是 how-to 斯蒂芬·沃尔特。


    如果您的问题实际上不是嵌入服务器端的数据,而是将多个图像路径和标题作为参数传递给插件,那么您可能需要检查 JSON serialization (<--这只是实现这一点的一种方法)是有效的。我很可能会创造 htmlHelper 将传递的对象序列化并按如下方式使用:

    $.fancybox([<%= Html.ToJSON(Model.Images)%>], 
      {'padding': 0 //yada yada}    
    })