如何在视图中获取标签并将一些 InnerHtml 设置为此标签?
Posted
技术标签:
【中文标题】如何在视图中获取标签并将一些 InnerHtml 设置为此标签?【英文标题】:How can I get a tag in a view and set some InnerHtml to this tag? 【发布时间】:2015-08-09 09:03:00 【问题描述】:我正在编写 MVC 5 视图,我想设置 html 元素的 InnerHtml。
这是我想添加一些额外 HTML 的 HTML 代码:
<section id="mainContentArea" class="content">
<!-- Your Page Content Here -->
</section>
作为测试,我想在上面的部分添加以下 HTML:
<p>Test data</p>
因此生成的 HTML 将是:
<section id="mainContentArea" class="content">
<!-- Your Page Content Here -->
<p>Test data</p>
</section>
这是我编写的代码:
@
var tag = new TagBuilder("mainContentArea");
tag.InnerHtml += "<p>Test data</p>";
上面的代码没有向该部分添加任何 HTML 代码。
我可以帮忙吗?
提前致谢。
【问题讨论】:
TagBuilder
用于生成 html 元素(例如 div
或 input
等),而不是用于获取元素。如果你想动态添加内容,你需要 javascript/jquery
为什么你想这样做?这不是 MVC 应该被使用的方式。您不能只在其中包含一个部分,或者呈现一个包含您要打印的 HTML 字符串的 @variable
吗?
jQuery 的答案很棒!你想使用 jQuery 还是 C#?是否要将数据从 Action 传递到视图?
【参考方案1】:
您可以使用JQuery
动态添加html。
$("#mainContentArea").html("<p>Test data</p>");
但是,如果您的 html 在变量中,那么您可以使用 @Html.Raw
方法。
@string html="<p>Test data</p>";
<section id="mainContentArea" class="content">
@Html.Raw(html)
</section>
【讨论】:
我认为您不会在 Razor 代码中获得“mainContentArea”。所以你不能这样添加。以上是关于如何在视图中获取标签并将一些 InnerHtml 设置为此标签?的主要内容,如果未能解决你的问题,请参考以下文章