2016-12-17 3 views
0

ich eine Aktion Methode Unterschrift davon haben, ist:Html.Action nicht Parameter Aktion Methode vorbei

public ActionResult ViewContest(int id, int showNext){ 
//Some code here 
} 

In einem meiner Ansichten, ich habe dies:

<a href="@Html.Action("ViewContest", "Home", new { id = Model.UserActivity.UserParticipation.CompetitionId, showNext = 1 })"> 
    <img src="~/Image/RightArrow.png" style="float:right;width:40px;" /> 
</a> 

Als ich das laufen Programm, übergibt die Ansicht den Wert "id" korrekt an die Methode, aber die Laufzeitumgebung löst eine Ausnahme aus, da showNext null ist. Warum wird mein showNext-Wert nicht an die Methode übergeben? Irgendwelche Ideen?

+0

Was ist das gerenderte HTML? –

+0

'@ Html.Action()' ruft eine Servermethode auf. Sie erstellen einen Link, so dass Sie '@ Url.Action()' –

+0

Sorry, aber ich bin mir nicht sicher, ob ich auf die Frage klar bin. Die Html.Action zeigt ein Bild eines Pfeils an, der beim Anklicken die Aktionsmethode für neue Daten aufrufen soll. Beantwortet das die Frage oder möchtest du den Code für die Ansicht? –

Antwort

1

Sie verwenden falschen Helfer. Um URL ViewContest Methode der Home den Controller zu generieren:

@Url.Action("ViewContest", "Home", new { id = Model.UserActivity.UserParticipation.CompetitionId, showNext = 1 }) 

Also schließlich sollte der Code wie folgt aussehen:

<a href="@Url.Action("ViewContest", "Home", new { id = Model.UserActivity.UserParticipation.CompetitionId, showNext = 1 })"> 
    <img src="~/Image/RightArrow.png" style="float:right;width:40px;" /> 
</a> 
+0

Danke an alle für ihre Eingabe. –