【发布时间】:2012-10-19 17:45:25
【问题描述】:
是否可以在 Razor 中做这样的事情:
@using(Html.CMSContent("TermsOfService"))
{
<text>
<!-- Some default content goes here if the "TermsOfService"
item doesn't exist in my content table in the database -->
</text>
}
在处理视图时,如果 CMSContent 助手在我设置的某个数据库表中没有找到名为“TermsOfService”的内容项,它将输出默认内容。
否则,它会将默认内容替换为数据库中的内容?
我正在尝试构建一个 CMS/应用程序混合体,以便营销部门可以根据需要覆盖我的应用程序中的文本。
澄清
我这样做的原因是为了让代码超级容易阅读和编写。我最终会在所有地方使用这些小内容块,因此我希望尽量减少开发人员为获得此功能而必须输入的数量。
我还期望 99% 的时间会显示默认文本。但我希望处理 1% 的情况,我们需要快速更改一些文本而无需重新部署应用程序。因此,让默认文本尽可能接近其上下文很重要(即,我不希望开发人员必须跳转到不同的文件来查看默认文本是什么 - 也不必跳转到顶部页)。
例如,当您执行@using(Html.BeginForm()) 时,它会自动发出开始和结束<form> 标记。我希望有这样聪明的东西。
【问题讨论】:
-
有什么理由不把这个逻辑放到控制器里?
-
只是想让默认内容尽可能接近页面的上下文。阅读 Razor 视图并查看默认文本以了解页面的外观比跳转到控制器更容易。
标签: asp.net-mvc razor content-management-system