我有一个无序列表,当点击一个项目时,它会使用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
})
};
这可能吗?非常感谢任何帮助
由于
答案 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}
})