如何使用 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))?