【发布时间】:2012-10-10 13:52:09
【问题描述】:
我已经在互联网上搜索了几天,但没有找到这个。
我的模型有一个属性,其中包含一个包含 Razor 标记的 html 块。 示例:
public class ViewModel
{
public string Content = "<div>@Html.TextBox(\"UserName\")</div>";
}
在视图中,我将其显示为
@Html.Raw(Server.HtmlDecode(Model.Content).toString())
我需要能够将 Razor 标记转换为 html,尽管由于内容是通过模型放入的,因此视图引擎不会对其进行处理。
- 我尝试过简单地放入内容,仅使用 .Raw(Model.Content)、.Encode(Model.Content),但没有任何效果。
有什么想法吗?
【问题讨论】:
-
似乎您违背了 MVC 框架的全部目的。为什么不直接从模型中传递实际数据并在视图中使用该数据创建标记?
-
好点,详细说明项目:该站点使用页面编辑器,它将部分视图的全部内容存储在数据库中,并在请求时加载它。所以,我需要能够从包含剃刀标记的数据库中读取一个字符串。
-
我怀疑您必须先将剃须刀解码为 HTML,然后才能将其保存到数据库。
-
"该站点使用页面编辑器,它将部分视图的全部内容存储在数据库中,并在请求时加载。"同意。但是你应该只将值存储在数据库中并在局部视图中显示标记,然后你可以使用模型传递这些值。
标签: html asp.net-mvc razor asp.net-mvc-4