2016-05-05 102 views
0

TL; DR:如何將模型傳遞到下一個形狀?將當前模型傳遞給更具體的形狀

我修改了我的主題(Views\Orchard.Search\Search\Index.cshtml)中的Orchard.Search模塊搜索結果視圖,並將其分成多個場景。我測試一個結果,然後直接重定向並測試沒有搜索項和多個搜索搜索結果。

我想將這些情景放在單獨的.cshtml視圖中,但這些特殊形狀需要訪問主搜索結果模型(@model Orchard.Search.ViewModels.SearchViewModel)。

我試着用Arguments.From做一個動態對象,工作,但後來我在視圖中投一切回到它的正確的數據類型,因爲接下來的形狀倒認爲它的模型中的每個屬性是dynamic類型。

相反,我一直試圖弄清楚如何只通過整個Model下一個形狀:

@if (HasMultipleResults()) 
{ 
    var shapeFactory = (IShapeFactory)New; 
    // this doesn't work 
    var multipleResultsShape = (dynamic)shapeFactory.Create("Search_MultipleResults", Model); 
    @Display(multipleResultsShape); 
    return; 
} 

我還沒有找到一種方式來獲得它的工作還沒有,任何人都可以教我嗎?

回答

2

如果動態方法的第一個參數是一個類型,那麼這將被用作模型。

New.YourShape(typeof(YourType))

詳情請參見這個視頻:https://www.youtube.com/watch?v=gKLjtCIs4GU&feature=youtu.be&t=1127

+0

我嘗試這樣'變種multipleResultsShape = New.Search_MultipleResults(typeof運算(Orchard.Search.ViewModels.SearchViewModel),模型); @Display(multipleResultsShape);'但是它引發'形狀的無效基類型:Orchard.Search.ViewModels.SearchViewModel'。 – rtpHarry

+0

試着讓它繼承'形狀' –

+0

我只是覆蓋了我的主題中的Orchard.Search模塊的搜索結果視圖。我想這次我不能使用這種技術,然後不修改內置的果園模塊? – rtpHarry