【问题标题】:How can I get a tag in a view and set some InnerHtml to this tag?如何在视图中获取标签并将一些 InnerHtml 设置为此标签?
【发布时间】: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 传递到视图?

标签: c# tags asp.net-mvc-5 innerhtml asp.net-mvc-views


【解决方案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”。所以你不能这样添加。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 2011-10-01
相关资源
最近更新 更多