2016-11-08 63 views
1

我正尝试使用MVC5创建图像幻灯片。这里是我的模型类:使用动态图像源时图像不可见 - MVC5

public class ImageSlider 
{ 
    public string Source { get; set; } 
    public string ImageName { get; set; } 
    public string Title { get; set; } 
} 

对于这个模型,我创建了一个控制器和内部的动作:

public ActionResult _imageSlider() 
{ 
    return View(new List<ImageSlider> { 
     new ImageSlider { Source = "~/_Slider/Images/google.jpg" }, 
     new ImageSlider { Source = "~/_Slider/Images/googlePlus.jpg" }, 
     new ImageSlider { Source = "~/_Slider/Images/facebook.jpg" } 
    }); 
} 

,这里是我的局部视图:

<div class="cycle-slideshow" data-cycle-fx="scrollHorz" data-cycle-pause-on-hover="true"> 
    @foreach (var item in Model) 
    { 
     <img src="@item.Source" /> 
    } 
</div> 

现在问题是,当我像上面那样创建图像标签时,我看不到任何图像,而我可以在我的页面源中看到这些元素已被创建。但是如果我用HTML创建这些标签,所有图像都可见。例如:

<div class="cycle-slideshow" data-cycle-fx="scrollHorz" data-cycle-pause-on-hover="true"> 
    <img src="~/_Slider/Images/google.jpg" /> 
    <img src="~/_Slider/Images/googleplus.jpg" /> 
    <img src="~/_Slider/Images/facebook.jpg" /> 
</div> 

我知道我在这里失去了很小的东西,但我找不出什么。谁能帮帮我吗?

+0

当您看到创建的项目时,它们是否具有正确的源代码,即与直接在html中创建它们时完全相同? – AsheraH

+1

尝试src =“@ Url.Content(item.Source)” –

+0

@AsheraH,是的。事实上,我从页面源 –

回答

0

您需要使用@Url.Content这样,更改您的视图。

@foreach (var item in Model) 
    { 
     <img src="@Url.Content(item.Source)" /> 

    } 
+1

的基本区别吗?这解释了它的工作原理http://stackoverflow.com/a/9516312/1223471 –