2016-04-22 4 views
0

Hallo Ich habe diesen Code von einer vorherigen Web-App, die ich getan habe. Ich habe einfach kopiert und in ein neues eingefügt, aber Bilder werden auf der neuen Website nicht angezeigt. Ich schreibe sogar Code, um den Pfad anzuzeigen, und es zeigt OK, um die ID zu zeigen, und es zeigt OK und alle Eigenschaften von Produkten und sie alle zeigen OK, aber Bilder zeigen nicht. wenn F5 meine App die Seite läuft ok. aber anstelle von Bildern wird nur das kleine Symbol angezeigt, wenn der IMG nicht geladen werden kann. Bei Verwendung des Inspektors aus dem Browser hat das Quellattribut jedoch den richtigen Pfad für das Bild. kann ich nicht finden, was hier falsch ist, ist der CodeKann nicht den Fehler mit der Anzeige von Bildern in meinem Code finden

Dies ist Kategorie Klasse

namespace Mysite.Models 
{ 
    public class Category 
    { 
     //[ScaffoldColumn(false)] 
     public int CategoryID { get; set; } 

     [Display(Name = "Category Name")] 
     public string CategoryName { get; set; } 

     //[Display(Name = "Product Description")] 
     public string Description { get; set; } 

     public string ImagePath { get; set; } 

     public virtual ICollection<Product> Products { get; set; } 

    } 

} 

und dies ist die Produktklasse

namespace Mysite.Models 
{ 
    public class Product 
    { 
     //[ScaffoldColumn(false)] 
     public int ProductID { get; set; } 

     [Required, StringLength(100), Display(Name = "Product Name")] 
     public string ProductName { get; set; } 

     [Required, StringLength(10000), Display(Name = "Product Description"), DataType(DataType.MultilineText)] 
     public string Description { get; set; } 

     public string ImagePath { get; set; } // Here is the image path that I want to show   

     public int? CategoryID { get; set; } 

     public virtual Category Category { get; set; } 
    } 
} 

Dies ist der CategoryController ist, das ein Verfahren Durchsuchen hat, dass ENTHÄLT Produkte

namespace Mysite.Controllers 
{ 
    public class CategoriesController : Controller 
    { 
       private ProductContext db = new ProductContext(); 

       public ActionResult Browse(string categories) 
     { 
      var categoriaModel = db.Categories.Include("Products") 
       .SingleOrDefault(c => c.CategoryName == categories); 
      return View(categoriaModel);/*(db.Categories.C)*/ 

     } 

a nd das ist die vereinfachte Ansicht, ob alles, was ich im Browser angezeigt werden soll testen, wird tatsächlich

zeigte
@model Mysite.Models.Category 

@{ 
    ViewBag.Title = "Browse"; 
} 

<h2>Browse</h2> 
@foreach(var item in Model.Products) { 

<p>@item.ProductName , @item.ProductID , @item.ImagePath</p> 

<img src="@item.ImagePath"/> 

} 

aber das ist, was es zeigt tatsächlich

Horizontal Faux Wood , 1 , Content/ProductImages/woodblind2.jpg /*small non-loaded picture icon here*/ 

Horizontal Real Wood , 2 , Content/ProductImages/woodblinds1.jpg /*small non-loaded picture icon here*/ 

Aluminium mini blinds , 10 , Content/ProductImages/aluminiumminiblind.jpg /*small non-loaded picture icon here*/ 

Das gleiche Code, den ich es in einem anderen haben Website funktioniert. ich die doppelte Bilder-Ordner überprüfen, um die Strecke und alles ist ok

Antwort

0

ändern sie dies versuchen:

<img src="@Url.Content("~/" + item.ImagePath)"/> 
+0

Dies ist derjenige, der funktioniert. Aber kann nicht verstehen, warum dies und nicht die anderen auch noch die andere OK war (anscheinend) – shark6552

0

dieses

<img src= "@Url.Content(item.ImagePath)" alt="Image" /> 
+0

Ich bin jetzt von meinem PC weg, aber ich denke, das wird funktionieren Aber wie unterscheidet sich das von src "@ item.ImagePath" – shark6552

0

Du th / vor dem ImagePath fehlt die angeben root und ich würde lieber die string Variable aus einem anderen "" nehmen. Das ist mein Ansatz ohnehin

0

<img src="~/@item.ImagePath" />

Im Wesentlichen das ~ Symbol können Sie Dateien in Bezug auf den Root-Pfad verweisen.

Verwandte Themen