2016-11-18 11 views
0

Ich habe einen Codeabschnitt in meiner Ansicht, die ein Bild und eine URL beim Klicken darauf anzeigt. Die URL verweist auf eine Seite der Site und leitet sie an diese Aktionsmethode weiter. Ich habe den Parameter als Teil der URL, aber in der Aktionsmethode zeigt der Parameter null. Daher werde ich auf die entsprechende Seite umgeleitet, aber keine meiner Funktionalitäten innerhalb der Aktionsmethode funktioniert.href link nicht übergeben Parameterwert

Hier ist mein Code.

Ausblick:

<a class="lnkImage" href="@item.ImageURL" target="_blank"><img id="PrivateimgPreview" src="@item.ActualImage"/></a> 

Der Wert von @ item.Image URL, die ich aus der Datenbank bin immer ist http://localhost/TestProject/Home/DemoPage/b9f074fc-f86c-4866-a7b3-33e43025293f

Und meine Aktionsmethode in Heimsteuerung ist

public ActionResult DemoPage(string blockId) 
{ 
    //Some code here 
    return(View); 
} 

Diese ist meine Mapping-Route in Route.config

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

Was fehlt mir?

+0

Wie sieht Ihre Routentabelle aus? Können Sie Ihre RegisterRoutes-Methode posten? – SteveR

+1

versuchen und ändern Sie den Parameter von blockid zu ID – Swetha

+0

Ich glaube, Änderung des Parameternamens sollte es tun. Werde versuchen, das zu ändern. – TheFallenOne

Antwort

1

Ich denke, dass müssen Sie entweder ändern ‚BLOCKID‘ nur ‚id‘ oder fügen Sie die folgende Route:

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{blockId}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

Ich würde denken, dass es mehr Sinn macht, nur um Ihre Parameter in der Signatur zu umbenennen, anstatt Erstellen einer nahezu identischen Route für diese Aktionsmethode.