2016-11-08 87 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 –