2009-07-24 11 views
0

RenderActionを使用して、いくつかの「コンポーネント」の出力を私のビューに含める。しかし、ネストされたアクション内でActionLinkへのRenderAction呼び出しを使用するたびに、間違ったルートが生成されます。 (RouteLinkと同じです。)アクションが直接呼び出されると、正しいルートが生成されます。RenderAction内のActionLink

だから私は私の親ビューのindexアクションで複数回のアクションを呼び出す:

<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Event)); %> 
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Booking)); %> 
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Communication)); %> 
<% Html.RenderAction<StateAdminController>(c => c.Index(StateType.Payment)); %> 

およびネストされた索引ビューで、私はStateAdminControllerの編集-方法にActionLinkのを作ってみる:

<%= Html.ActionLink<StateAdminController>(c => c.Edit(state.Id), "Bearbeiten") %> 

しかし、ActionLinkは親ビューのIndex-Actionを指しています。

これは既知の問題ですか?間違ったことをすることはできますか? RenderActionからアクションが呼び出されたときの、アクションリンクの実行方法

ありがとうございます。
よろしく。

ヨアヒム

+0

コードを投稿してください。 – griegs

答えて

0

あなたが経路を説明しました。 RenderActionを使用すると、コントローラが直接呼び出されていることに注意してください(つまり、URLからではありません)。したがって、ルーティングテーブルを経由していません。

+0

はい、私はルート/リンクがネストされたコントローラによってエミュレートされたことを意味しました。例えば。 Html.ActionLinkヘルパーメソッドを使用します。 –

+0

私はそれの周りに私の頭を上げて少し問題があります...あなたは、実際のルート/ URLの例を与えることができますか? –

0

私はむしろ、すべてのバリエーションのプロパティが含まれているし、その後RenderPartial()を呼び出すために私の見解モデルを設計します:

<% Html.RenderPartial("StateAdmin", Model.Event); %> 
<% Html.RenderPartial("StateAdmin", Model.Booking); %> 
<% Html.RenderPartial("StateAdmin", Model.Communication); %> 
<% Html.RenderPartial("StateAdmin", Model.Payment); %> 

たり、コレクションをループし、それぞれに対してRenderPartial()を呼び出して自分の拡張メソッドで空想に行きます:

<% Html.RenderPartials("StateAdmin", Model.StateTypes); %> 

RenderAction()を呼び出し、ビューからアクションをレンダリングし、トリックをしている間は、私には少し間違っているようです。ビューは既にアクションの結果です。

関連する問題