2012-09-10 53 views
2

我在Orchard和主頁上創建了一個主題,我想從一個模塊渲染視圖。從Orchard的主題頁面渲染模塊視圖?

將要呈現的視圖由兩個模塊確定。一個「默認」模塊和另一個覆蓋默認模塊的路由(如果後者在Orchard中啓用)。所以我最好做的是以某種方式在我的主題主頁中指定路由/ URL,並在啓用的模塊上呈現返回的視圖dependend。這可能在烏節路上做到嗎?

我可以使用AJAX在加載或使用和specficy url時動態呈現視圖,但我寧願使用「純粹」的Orchard解決方案。

有什麼建議嗎?

+0

RenderAction? http://msdn.microsoft.com/en-us/library/system.web.mvc.html.childactionextensions.renderaction(v=vs.108).aspx –

+0

@BertrandLeRoy那種作品,但我不會那麼指定'controller'和'area'?就像 '@ {Html.RenderAction(「Register」,new {controller =「Home」,area =「Users」})}或者 '@ {Html.RenderAction(「Register」,new {controller =「Home」 ,area =「Invites」})}' 取決於我想要使用哪種註冊表單? 我想要的是從/進入主頁的註冊表單。如果啓用了該模塊,則應使用「邀請」形式,否則應使用「用戶」形式。 – Mattias

+0

是的,是嗎?一些代碼,在某個地方將不得不知道你想要什麼。它不能神奇地閱讀你的想法。遲早,你必須明確你想要渲染什麼。 –

回答

1

Okey,所以我想出了以下解決方案,感謝Bertrand的評論。

@{ 
    try 
    { 
     Html.RenderAction("Register", new { controller = "Home", area = "Invites" }); 
    } 
    catch (InvalidOperationException inviteException) 
    { 
     try 
     { 
      Html.RenderAction("Register", new { controller = "Home", area = "Users" }); 
     } 
     catch (InvalidOperationException userException) 
     { 
      @Display(New.DownloadLink()); 
     } 
    } 
} 

首先,我嘗試從Invites呈現一個登記表,如果該模塊被禁止我嘗試呈現一個註冊表格形式Users。在這兩個模塊都被禁用的情況下,會顯示一個簡單的下載鏈接。