我正在使用mvc.net,我想在运行时创建视图页面。可能吗?如果是,那我该怎么办?
答案 0 :(得分:1)
我们实际上将NVelocity片段存储在数据库中,我们在运行时将它们组合在一起并与ViewData对象结合以获取输出HTML字符串,我们只通过Content()而不是View()返回。
归结为这样的事情(伪代码,而不是实际代码):
var _viewDataObject = Products.All();
var _view = PageTemplate.Single(template=>template.Slug == PageTemplateEnums.HomePage);
var _outputHtml = nvelocityMemoryEngine.Transform(_view,_viewDataObject);
return Content(_outputHtml);
虽然我们出于性能原因进行了一些缓存,但这意味着您可以在不触及Visual Studio或在文件系统级别部署任何内容的情况下更改视图。
添加MimeType处理等内容并不需要太多,我们可以让开发团队以外的人编辑视图。