如何使用 jquery 将 @html.raw div HTML 保存并获取到数据库中并获取

Posted

技术标签:

【中文标题】如何使用 jquery 将 @html.raw div HTML 保存并获取到数据库中并获取【英文标题】:How to do I save and get @html.raw div HTML into database using jquery and get 【发布时间】:2019-11-06 23:54:06 【问题描述】:

我需要使用多行文本框,因为我使用的是经典 div。我在这里使用了 .net Razor 视图的 @html.raw。 现在我需要以 HTML 格式获取包含 @html.raw 的父 div,以便使用 jquery ajax 保存在 DB 中,然后从 DB 获取 HTML 以绑定到控制器。

我尝试使用$("#idofDiv").html(),但没有成功。

<div class="box-footer">
  <button type="button" id="btnSaveNotes" class="btn btn-primary pull-right">Submit</button>
</div>
$("#idofDiv").html();   

我需要使用 jquery 获取包含 HTML.raw 的外部 div HTML,然后使用 ajax 将其传递到数据库中。并使用 c# 将其绑定到视图。

【问题讨论】:

$("#idofDiv").html() 的值你在做什么?你把它发送到服务器保存在哪里?另外,除了这个问题,为什么要将 HTML 存储在数据库中?这是一个非常大的代码气味。 我只希望变量中的 div HTML 将其传递给控制器​​方法。否则一切都好。 是的,但是如何你现在是这样做的?请记住,SO 在这里帮助您调试代码,而不是为您编写代码。 【参考方案1】:

在模型上添加一个包含 HTML 的属性:

public class SomeModel

   [AllowHtml] public string Code  get;set; 

添加为隐藏字段:

@Html.HiddenFor(m => m.Code)

在表单提交之前,捕获 HTML 并存储在隐藏字段中:

$("#Code").html(  $("#idofDiv").html );

这将获取 HTML 并存储在一个隐藏字段中,理论上应该可以。如果不是,代码可能是一个未显示的文本区域。 DIV 元素不会直接回发,因此您需要一个隐藏的 INPUT 来完成这项工作。

【讨论】:

【参考方案2】:

我找到了合适的解决方案。

这是我的 div 代码:

【讨论】:

以上是关于如何使用 jquery 将 @html.raw div HTML 保存并获取到数据库中并获取的主要内容,如果未能解决你的问题,请参考以下文章

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

如何正确使用 Html.Raw(Json.Encode(Model))?

Html.Raw MVC 助手如何工作?

使用 Html.Raw 将 ASP.NET 模型序列化为 JSON 的 Razor 语法错误

如何使用 jQuery 将正则表达式应用于输入?

Html 编码/解码 & Html.Raw