很多我的普通內容都在數據庫中,可以通過自定義的CMS訪問。我周圍顯示簡單應用「謝謝」的消息等,這些由一個控制器動作(簡體)的:MVC3自定義ActionResult
public ActionResult DetailsUpdated()
{
return View();
}
和我的觀點:
@Html.GetContent("DetailsUpdated")
我有不少的這些和它非常煩人,有很多單行視圖文件。我希望能夠將該內容作爲視圖返回,我可以做return ContentResult(ContentRepository.GetContent("KEY"));
,但是這會以純文本格式返回,並且沒有呈現主視圖。
所以,基本上,通過ContentRepository.GetContent("KEY")
(返回一個字符串)從DB獲取內容並將其注入到主視圖中,RenderBody()被調用。我想有一個自定義的ActionResult這樣我就可以這樣做:
public ActionResult DetailsUpdated()
{
return DbContentResult();
}
,然後DbContentResult
的ActionResult會發現內容密鑰相對於動作和控制器的名稱,訪問數據庫和檢索的內容和顯示它在主視圖內,不需要物理文件視圖。這可能嗎?
沒錯很好的答案。我重新使用一些視圖來顯示整個信息表的不同控制器操作。主要是因爲它們顯示相同的對象類型,因此代碼非常相似。稍微調整一下,你可以重用alsorts,特別是使用partials和if語句。 – Doomsknight 2012-04-03 13:01:30
從來沒有想過這樣做,我想這會工作,但有沒有像我建議的那樣做的任何方式? – eth0 2012-04-05 08:09:12
@ eth0編輯了答案。一探究竟。 – tugberk 2012-04-05 08:54:19