我工作的MVC3 /剃刀頁面上,在我的_layout我有MVC3 - 裏面的RenderPartial不RenderSection工作
@RenderSection("relatedBooksContainer", false)
在另一頁我用那款有:
@section relatedBooksContainer
{
@{ Html.RenderPartial("~/Views/Shared/Bookshelf.cshtml", Model.Books);}
}
這不起作用。從我讀過的內容來看,RenderSection只會深入一層 - 在相關部分沒有Html.RenderPartial的概念,只會返回一個空白區域。我在http://forums.asp.net/t/1590688.aspx/2/10上讀到的解決方法是使用RenderPage並將返回的HTML提交給一個字符串,然後在渲染部分輸出該字符串......這是可行的!也就是說,直到我通過一個模型的部分頁面,那麼它拋出一個錯誤說:
傳遞到 字典型號產品類型 「TheBookshelf.ViewModels.BookshelfViewModel」, 但本詞典需要 類型的項目 'System.Collections.Generic.List`1 [TheBookshelf.EntityModel.Book]'。
任何人都知道爲什麼會發生這種情況?還有其他方法可以實現嗎?
所以「@section relatedBooksContainer」是在部分? – 2011-05-06 21:19:21
它看起來好像你需要使用嵌套佈局... – 2011-05-06 21:23:58
「所以」@section relatedBooksContainer「是在部分?」 ----代碼的這一部分位於它自己的常規獨立頁面中,但「〜/ Views/Shared/Bookshelf.cshtml」是常規頁面調用的部分頁面。這似乎打破了MVC。另外,我不能將它放在_Layout文件中,因爲實現「@section relatedBooksContainer」的每個頁面都會傳入它自己的模型,所以在沒有傳遞模型的情況下調用部分頁面也不會起作用。 – boolean 2011-05-07 03:12:27