c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1712字,纯文字阅读大概需要3分钟。
内容图文
我有一些编码的Html,其中嵌入了任意数量的1000个不同的Razor变量,我已经存储并需要从数据库中检索.我希望能够在MVC / razor视图中呈现它.
只是保存在数据库上的html的一个简单示例(它可能更复杂):
"<span>Your page is @Config.PageColour and you have page size of @Config.PageSize</span>"
MessageController.cs
public ActionResult ShowMessage()
{
var htmlToDisplay = _messageDAL.getHtmlMessage();
var messageVm = new MessageVm
{
DisplayMessage = htmlToDisplay;
};
return View("Index.cshtml", "", messageVm);
}
Index.cshtml
<html>
@Html.Raw(@model.DisplayMessage)
</html>
结果
当我运行它时,渲染页面如下所示:
Your page is @Config.PageColour and you have page size of @Config.PageSize
但我希望它用html块解释Razor变量的值,看起来像这样:
Your page is Blue and you have page size of
A4
真的坚持这一点所以任何帮助将不胜感激!
解决方法:
使用此行.我希望这可能有所帮助.
@Html.Raw(System.Web.HttpUtility.HtmlDecode(@model.DisplayMessage))
编辑1
您可以使用任何Razor Compiler,如下所述
RazorEngine:
string result = RazorEngine.Razor.Parse(@model.DisplayMessage, new { Name = "Name" });
RazorEngine不支持任何Mvc助手,如Html和Url.由于这些库应该存在于Mvc之外,因此需要更多的工作才能让它们与这些帮助者一起工作.**
编辑2
您可以使用Razor编译器,它允许您使用名为RazorEngine的HTML模板,该模板可在https://github.com/Antaris/RazorEngine找到
从Visual Studio,使用程序包管理器控制台命令:
Install-Package RazorEngine
安装后我按如下方式更改了控制器:
MessageController.cs
public ActionResult ShowMessage()
{
var htmlTemplate = _messageDAL.getHtmlMessage();
var htmlToDisplay = Engine.Razor.RunCompile(htmlTemplate , "messageTemplateKey", null, new { Name = "some model data" });
var messageVm = new MessageVm
{
DisplayMessage = htmlToDisplay;
};
return View("Index.cshtml", "", messageVm);
}
内容总结
以上是互联网集市为您收集整理的c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML全部内容,希望文章能够帮你解决c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。