2014-02-21 87 views
0

我越來越沮喪地使用Umbraco。我一直在研究一個Umbraco項目,現在我一直無法弄清楚如何解決我的問題(其中之一)。如何成功鏈接到Umbraco的另一個cms頁面

場景 - 我有一個內容管理頁面,在這個頁面上,用戶可以搜索這些東西(這些東西來自與Umbraco完全不同的數據庫)。這很好,我創建了一個加載搜索表單的子操作並創建了返回結果的控制器方法。但是,我需要鏈接到另一個內容託管頁面(每個結果的內容託管頁面都相同)的每個結果都需要一個ID,以便我可以將一些動態數據注入內容託管頁面。

好,我有一個方法來處理這個請求在我的表面控制器,我可以創建一個Html.ActionLink每個結果,當點擊命中我的控制器行動與ID參數。

問題 - 當每個鏈接被點擊的是被擊中的網址是

http://localhost:5645/umbraco/surface/{controllername}/{actionname}/?id={id} 

然而這一要求是一把umbraco範圍之外,所以當我嘗試用下面的控制器代碼返回任何網頁,我出現以下錯誤:

[ActionName("ShowDetials")] 
    public ActionResult GetProperty(int propertyId) 
    { 
     return View("~/Views/TestView.cshtml"); 
    } 

無法呈現一個宏時UmbracoContext.PageId爲空。

所以我最初的想法是有一個單獨的控制器從Umbraco.Web.Mvc.RenderMvcController繼承,並嘗試在那裏處理請求,但這引發了其他問題,如無法使用@ Html.ActionLink鏈接到RenderMvcController,我也不希望有兩個控制器來處理來自同一部分的內容。

我的其他問題是將自定義模型傳遞給視圖。

如果有人能幫助我,我會永遠感激。

回答

0

對於任何有此相同問題的開發人員,我已經能夠解決它的唯一方法是擁有兩個控制器。一個表面控制器,用於處理搜索表單和頁面的初始渲染,並顯示搜索結果,然後是一個單獨的rendermvc控制器,用於處理點擊單個結果並顯示「詳細信息」頁面。

但是,這在我看來並不是很好,如果有人有另一種解決方案,我仍然非常感激。

相關問題