将模型值分配给JavaScript变量MVC4
我正在尝试制作一个图像幻灯片,并通过模型中的列表传递图像的URL将模型值分配给JavaScript变量MVC4,javascript,asp.net-mvc,razor,Javascript,Asp.net Mvc,Razor,我正在尝试制作一个图像幻灯片,并通过模型中的列表传递图像的URL List<string> 我的问题是,如何将此URL列表分配给上述变量,通常我可以这样做: image1.src="value.jpg" 如何在JavaScript中使用Razor分配值?此Razor代码将创建一个图像对象,其中包含字符串列表中每个元素的索引,并将设置其src属性 <script> @for (var idx = 1; idx <= Model.ListOfImages.L
List<string>
我的问题是,如何将此URL列表分配给上述变量,通常我可以这样做:
image1.src="value.jpg"
如何在JavaScript中使用
Razor
分配值?此Razor代码将创建一个图像对象,其中包含字符串列表中每个元素的索引,并将设置其src属性
<script>
@for (var idx = 1; idx <= Model.ListOfImages.Length; ++ i) {
<text>
var image@(idx) = new Image();
image@(idx).src = '@Model.ListOfImages[idx]';
</text>
}
</script>
@对于(var idx=1;idx有两种方法可以解决此问题:
使用Razor生成JavaScript
<script type="text/javascript">
var images = [], image;
@foreach (var image in ListOfImages)
{
image = new Image();
image.src = @image.url;
images.push(image);
}
</script>
var-images=[],image;
@foreach(ListOfImages中的var图像)
{
图像=新图像();
image.src=@image.url;
图像。推送(图像);
}
使用Razor生成HTML,然后让JavaScript使用HTML进行幻灯片放映
<div class="slideshow">
<ol>
@foreach (var image in ListOfImages)
{
<li><img src="@image.url"></li>
}
</ol>
<a href="#" class="slideshow-prev">Prev</a>
<a href="#" class="slideshow-next">Next</a>
</div>
<script type="text/javascript">
// some imaginary jQuery plugin to create a slideshow
$(".slideshow").slideshow();
</script>
@foreach(ListOfImages中的var图像)
{
}
//一些虚构的jQuery插件来创建幻灯片
$(“.slideshow”).slideshow();
我偏爱解决方案#2。如果可能的话,我尽量避免让服务器端模板语言以多种语言生成代码。在解决方案#2中,Razor只是生成HTML。你能解释for循环内部发生了什么吗确保for循环内部为列表中的每个项目生成两个javascript语句1)定义图像对象(2)将其src属性设置为列表中的值。标签是剃须刀指令。好极了。。我去看看
<script type="text/javascript">
var images = [], image;
@foreach (var image in ListOfImages)
{
image = new Image();
image.src = @image.url;
images.push(image);
}
</script>
<div class="slideshow">
<ol>
@foreach (var image in ListOfImages)
{
<li><img src="@image.url"></li>
}
</ol>
<a href="#" class="slideshow-prev">Prev</a>
<a href="#" class="slideshow-next">Next</a>
</div>
<script type="text/javascript">
// some imaginary jQuery plugin to create a slideshow
$(".slideshow").slideshow();
</script>