2011-06-02 79 views
3

我正在嘗試使用新的razor語法來嵌套母版頁。任何幫助表示讚賞:使用Razor語法嵌套的母版頁

我得到的錯誤是

Execute() no suitable method found to override 

進一步鑽研我有我的_Site.cshtml,這是主要的母版頁和繼承ViewMasterPage。

我的嵌套母版頁是_layout.cshtml,它使用_site作爲佈局,使用一些助手和ViewMasterPage

繼承我有一個_ViewStart.cshtml,它指向我的佈局文件。

最後我有一個自ViewPage

繼承

因此,在每一頁我頂我的索引頁:

網站:

@inherits System.Web.Mvc.ViewMasterPage 

佈局

@inherits System.Web.Mvc.ViewMasterPage<MyMasterViewModel> 
@{ Layout ="~/Views/Shared/_Site.cshtml"; } 

ViewStart

@{ Layout ="~/Areas/AreaName/Views/Shared/_Layout.cshtml"; } 

指數

@inherits System.Web.Mvc.ViewPage<MyHomeModel> 

任何想法?

乾杯!

回答

2

ViewMasterPage用於WebForms視圖。
剃刀布局頁面不會繼承特殊的類;相反,他們繼承了相同的ViewPage類。

您應該在所有三頁中使用@model指令而不是@inherits

+0

謝謝@SLaks - 讓我在正確的軌道上砰! – Sniffer 2011-06-03 07:51:44

+0

只是爲了澄清其他人面臨同樣的問題。刪除Site master頁面中的行,將Layout更改爲@model MyMasterViewModel,將Index更改爲@model MyHomeModel。 – Sniffer 2011-06-03 07:53:26