2009-07-24 75 views
0

我正在使用RenderAction在我的視圖中包含幾個「組件」的輸出。但是每次我在嵌套操作中使用RenderAction調用ActionLink產生錯誤的路由。 (對於RouteLink也是如此。)如果直接調用該操作,則會生成正確的路由。RenderAction中的ActionLink

所以我所說的行動多次在我父視圖的指標作用:

<% 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)); %> 

而在嵌套索引視圖我試圖使ActionLink的到StateAdminController的編輯法:

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

但ActionLink指向我的父視圖的索引行爲。

這是一個已知的問題嗎?我可以做錯什麼嗎?當從RenderAction調用動作時應該如何完成動作鏈接?

預先感謝您。
此致敬禮。

約阿希姆

+0

你可以發佈一些代碼嗎? – griegs 2009-07-24 11:52:50

回答

0

您提到的路線。值得注意的是,當你使用RenderAction時,控制器被直接調用(即不是來自Url)。因此,它不通過你的路由表。

+0

是的,我的意思是由嵌套控制器提供的路由/鏈接。例如。由Html.ActionLink輔助方法。 – 2009-07-31 16:33:44

+0

我的頭部有點麻煩......你能舉出預期的和實際的路線/網址的例子嗎? – 2009-07-31 18:18:58

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()的伎倆,呼籲並呈現從視圖中的動作似乎有點我錯了。該視圖已經是一個行動的結果。