2016-08-01 11 views
0

Ich bin neu in MVC und ich möchte eine relativ einfache Frage stellen! Ich habe eine Indexseite mit 2 Bildern, die Links sind. Beide gehen auf eine andere Seite namens "Page", und wenn diese Seite geöffnet wird, möchte ich, dass das Bild, das ich gerade angeklickt habe, gerendert wird. Hier ist ein Haken aus der Index-Seite:Dynamisch anzeigen geklickt Bild MVC

<div class="col-md-4"> 
<h2>Column 1</h2> 
    <a href="@Url.Action("NewPage", "Page")"> 
     <img src="~/Images/ball.jpg" /> 
    </a> 
</div> 
<div class="col-md-4"> 
    <h2>Column 2</h2> 
    <a href="@Url.Action("NewPage", "Page")"> 
     <img src="~/Images/ball1.jpg" /> 
    </a> 
</div>` 

Also, wenn ich auf „ball.jpg“ klicken, ich mag, dass nur in der neuen Seite zu machen, und das gleiche für „ball1.jpg“. Der Controller für „NewPage“:

namespace MVC.Mine.Controllers 
{ 
    public class PageController : Controller 
    { 
     // GET: Page 
     public ActionResult NewPage() 
     { 
      return View(); 
     } 
    } 
} 
+1

Sie müssen einen Parameter an die Methode übergeben, die das Bild identifiziert –

Antwort

0

Sie können Ihren Link des href Attributwert aktualisieren, um einen eindeutigen Schlüssel als Abfragezeichenfolgeflag Parameterwert zu übergeben.

Zum Beispiel kann mit Ihrem aktuellen Code der Bilddateiname übergeben werden.

<a href="@Url.Action("NewPage", "Page",new {id="ball"})"> 
    <img src="~/Images/ball.jpg" /> 
</a> 
<a href="@Url.Action("NewPage", "Page",new {id="ball1"})"> 
    <img src="~/Images/ball1.jpg" /> 
</a> 

nun sicherstellen, dass Ihre NewPage Aktionsmethode akzeptiert diesen Zeichenfolge-Wert in einem Parameter mit dem Namen id

public ActionResult NewPage(string id) 
{ 
    var fileName=id+".jpg"; 
    return View(fileName); 
} 

Da Sie den String-Wert (Dateiname) die Ansicht sind vorbei, stellen Sie sicher, dass es stark ist als String-Typ eingegeben.

@model string 
<h2>Going to display the image clicked</h2> 
<img src="~/Images/@Model" /> 

Wenn Sie die Bilder für Datensätze aus Datenbanktabelle (n) zeigt, sollten Sie die eindeutige ID (Primärschlüssel) übergeben, von dem die Informationen Bild kann leicht in Ihrer NewPage Aktionsmethode abgerufen werden.

+0

Danke für das Posten. Ich folge den ersten 2 Teilen, aber dem 3. Teil folge ich nicht vollständig. – RJohnson

+0

Sie haben gesagt, dass Sie das angeklickte Bild auf der nächsten Seite anzeigen möchten. Übergeben Sie also den Bildnamen von Ihrer Aktionsmethode an die Ansicht, und verwenden Sie diese in der Ansicht, um den Image- "src" -Eigenschaftswert zu erstellen. Hoffnung, die Sinn macht – Shyju