Ich versuche, ein Objekt über einen ActionLink an eine Methode in einem MVC-Controller zu übergeben.Html.ActionLink() funktioniert nicht zum Übergeben eines C# -Objekts
Rasierer Syntax:
@Html.ActionLink("Export to Excel","ReturnExcelOfViewableResponses",new { SearchObject = Model.SearchObject})
was tatsächlich in Markup angezeigt wird:
<a href="/EducationAgency/ReturnExcelOfViewableResponses?SearchObject=DTO.SearchObject" tabindex="29">Export to Excel</a>
Die Controller-Methode ganz gut genannt wird, also kein Grund, hier zu posten. Was muss getan werden, damit die tatsächlichen Werte in den actionLink anstatt DTO.SearchObject
übergeben werden? Laut HTML.ActionLink method sieht es so aus, als hätte ich die richtige Syntax (mit MVC 4).
Danke! Das war's. Ich denke, das ist das neue MVC 4-Format? – levininja
@levininja - nein, im Gegensatz zu dem, was die Antwort, auf die Sie in Ihrer Frage verwiesen haben, sagt, bin ich ziemlich sicher, dass es für diese Methoden keine großen Unterschiede zwischen MVC 1, 2, 3 und 4 gab. Diese Funktionalität wird nur selten im Vergleich zur Übergabe eines anonymen Objekts verwendet (wie das Beispiel in Ihrer Frage). In beiden Fällen definiert das übergebene Objekt Routenwerte - und die (ersten) Eigenschaften des Objekts werden (letztendlich) durch Reflexion in Abfrageparameter umgewandelt - egal, welches Objekt es ist. Aber das anonyme Objekt, das Sie in Ihrer Frage übergeben, hat nur eine "First Level" -Eigenschaft: SearchObject. – JimmiTh