很多我的普通内容都在数据库中,可以通过自定义的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