6
オブジェクトをActionLink経由でMVCコントローラのメソッドに渡そうとしています。C#オブジェクトを渡すためにHtml.ActionLink()が機能しません。
かみそり構文:
@Html.ActionLink("Export to Excel","ReturnExcelOfViewableResponses",new { SearchObject = Model.SearchObject})
実際にマークアップで表示されている何が:
<a href="/EducationAgency/ReturnExcelOfViewableResponses?SearchObject=DTO.SearchObject" tabindex="29">Export to Excel</a>
コントローラメソッドは、ここに投稿するので、理由、ちょうど罰金と呼ばされていません。実際の値がDTO.SearchObject
の代わりにactionLinkに渡されるようにするために何をする必要がありますか? HTML.ActionLink methodによれば、(MVC 4を使用して)正しい構文があるように見えます。
ありがとうございます!それはそれだった。私はそれが新しいMVC 4形式だと思いますか? – levininja
@levininja - nah、あなたの質問にリンクしている回答には、これらのメソッドのMVC 1,2,3、および4に大きな違いはないと確信しています。この機能は、(あなたの質問の例のように)匿名のオブジェクトを渡すのに比べるとほとんど使われません。いずれの場合も、渡されたオブジェクトはルート値を定義し、オブジェクトの(第1レベルの)プロパティは、(最終的に)リフレクションによってクエリパラメータに変換されます。しかし、質問に渡す匿名のオブジェクトには、「第1レベル」のプロパティが1つしかありません:SearchObject。 – JimmiTh