如何在视图中获取标签并将一些 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 元素(例如 divinput 等),而不是用于获取元素。如果你想动态添加内容,你需要 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 设置为此标签?的主要内容,如果未能解决你的问题,请参考以下文章

使用 .innerHTML 时 HTML 标签损坏

如何从 div 中获取 innerHTML?

有没有办法获取选项标签值并将其传递给车把中的助手?

如何在 iOS 中检索数据并将数据传递给标签栏控制器的子视图?

获取不在另一个标签内的元素的 InnerHTML

无法从 innerHTML 获取动态数据 - Angular