我是靠谱客的博主 现实树叶,最近开发中收集的这篇文章主要介绍mvc中嵌入html,c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

我有一些编码的Html,其中嵌入了任意数量的1000个不同的Razor变量,我已经存储并需要从数据库中检索.我希望能够在MVC / razor视图中呈现它.

只是保存在数据库上的html的一个简单示例(它可能更复杂):

"Your page is @Config.PageColour and you have page size of @Config.PageSize"

MessageController.cs

public ActionResult ShowMessage()

{

var htmlToDisplay = _messageDAL.getHtmlMessage();

var messageVm = new MessageVm

{

DisplayMessage = htmlToDisplay;

};

return View("Index.cshtml", "", messageVm);

}

Index.cshtml

@Html.Raw(@model.DisplayMessage)

结果

当我运行它时,渲染页面如下所示:

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,asp-net-mvc,razor,asp-net-mvc-4,html

来源: https://codeday.me/bug/20190516/1116766.html

最后

以上就是现实树叶为你收集整理的mvc中嵌入html,c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML的全部内容,希望文章能够帮你解决mvc中嵌入html,c# – 使用MVC渲染带有嵌入式Razor变量的动态HTML所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部