ASP.NET MVC 2&动态JavaScript

时间:2010-08-17 08:19:19

标签: javascript asp.net-mvc-2

我有一个无序列表,当点击一个项目时,它会使用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 个答案:

答案 0 :(得分:0)

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

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

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

模型是您将传递给控制器​​查看的对象。

这是Stephen Walther的how-to


如果您的问题实际上并不是从服务器端嵌入数据,而是将多个图像路径和标题作为参数传递给插件,您可能想查看JSON serialization(&lt; - 这只是一种方法来实现这一点。我很可能会创建htmlHelper来序列化传递的对象并使用它:

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