0

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

そのため、親ビューの 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)); %>  

そして、ネストされた Index-View で、StateAdminController の Edit メソッドへの ActionLink を作成しようとしています。

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

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

それは既知の問題ですか?何か間違ったことをしてもいいですか?アクションが RenderAction から呼び出されたとき、ActionLinks はどのように行われるべきですか?

前もって感謝します。
よろしく。

ヨアヒム

4

2 に答える 2

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()行いますが、ビューからアクションを呼び出してレンダリングすることは、私には少し間違っているようです。ビューはすでにアクションの結果です。

于 2009-10-04T20:36:27.237 に答える
0

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

于 2009-07-30T18:43:06.797 に答える