如何在 @Html.TextAreaFor() 中使用 @Html.Raw()



我正在使用summernote添加图像,视频,文本。此外,我将图像或视频保存为字符串类型的 HTML 代码到数据库。当我从数据库中检索视频或图像以显示在 summernote 上时,需要将近 5 分钟,我不知道为什么。但是,当我从数据库中检索文本以显示在summernote上时,没有问题。

这是模型

public class Article
{
[AllowHtml]
[Column(TypeName = "varchar(MAX)")]
public string Content { get; set; }
}

这是夏季笔记编辑器的视图

@Html.TextAreaFor(x => Model.Content, new { @class = "", placeholder = @Blog.Helper.Resources.Content, @id = "summernote_1" })

此外,如果我在视图中使用以下代码

<div id="summernote_1">@Html.Raw(Model.Content)</div>

显示视频或图像没有问题,但我无法编辑夏季笔记。当我编辑summernote时,Model.Content变得空。

如果我在视图中使用以下代码

@Html.TextAreaFor(x => Model.Content, new { @class = "", placeholder = @Blog.Helper.Resources.Content, @id = "summernote_1" })

编辑夏季笔记没有问题,但显示视频或图像需要近 5 分钟。

由于这些原因,我正在尝试在视图中使用以下代码,但是下面的代码出现错误。

@Html.TextAreaFor(x => Html.Raw(Model.Content), new { @class = "", placeholder = @Blog.Helper.Resources.Content, @id = "summernote_1" })

我可以在 html 中使用 html.raw 吗?文本区域对于或我能为此问题做什么来显示视频或图像并编辑夏季笔记。 对不起,我的英语不好,我希望有人可以帮助我。

Html.Raw方法返回System.Web.IHtmlString,我认为您需要的只是传递包含HTML标签string属性(AFAIKHtml.Raw助手不能在其他HTML助手中使用,例如DisplayForTextBoxFor)。

可以在TextAreaFor之前对属性Content使用HttpUtility.HtmlDecode,如以下示例所示(尤其是在 HTML 标记在不知情的情况下被编码的情况下):

@model Article
@{
Model.Content = HttpUtility.HtmlDecode(Model.Content);
}
@Html.TextAreaFor(x => x.Content, new { @class = "", placeholder = @Blog.Helper.Resources.Content, @id = "summernote_1" })

通过使用这种方式,您可以从视图模型的字符串属性正确呈现 HTML 标记,而不会丢失模型绑定。

.textarea {
padding: 2px;
宽度:250像素;
高度:200 像素;
边框:实心 1px #e0e0eb;
溢出:滚动;
溢出-y:滚动;
溢出-x:隐藏;

}

使用 @Html.Raw() 在包含类 "textarea" 的div 中编写您的 html 内容。

<div class="textarea"> @Html.Raw(Model.NOTE) </div>

最新更新