0

问题是:平台为客户生成报告。但是每个客户报告中的信息相同,但布局不同。每次客户想要更改布局时,我都不想生成部分视图、重新编译和发布解决方案。

我想在数据存储中存储一个表示部分视图(报告)的字符串,并在运行时传递给带有模型的视图并渲染它。

我一直在寻找一些解决方案,但涉及到部分视图文件。这篇文章(http://www.umbraworks.net/bl0g/rebuildall/2009/11/17/ASP_NET_MVC_and_virtual_views)给出了一个想法,但在这种情况下,客户端总是在同一个 URL 中访问(如 ~/Reports/SomeReport/2,其中2是客户端拥有的对象的id,客户端与对象的关系是一个客户端,多个对象)。

我该如何解决这个问题?

提前致谢

4

1 回答 1

1

编辑:将围绕 RazorEngine 的评论移至答案,因为这似乎更相关。

对于动态模板(例如,从数据库中检索模板内容然后绑定到模型),看起来RazorEngine适用于此用例。


渲染原始 HTML [nkvu - 出于历史目的而将此处作为“原始”,不正确的响应导致正确的响应]

如果您有一个只想在屏幕上显示的 HTML 字符串,那么您可以使用Html.Raw(). 这是一个旧示例,但它应该说明 Raw() 是如何工作的。抱歉,如果我误解了您的用例。

但作为一种好的做法,您应该确保测试/防御各种可能出现的注入攻击,因为您正在直接渲染 HTML。我会尝试找到一些链接供您考虑并在我这样做时更新此回复

于 2013-03-27T17:17:26.050 回答