2015-05-27 60 views
2

我正在编写一个MVC 5视图,并且我想设置一个HTML元素的InnerHtml。如何在视图中获取标签并为此标签设置一些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代码。

我可以请这个帮忙吗?

在此先感谢。

+0

'TagBuilder'用于生成html元素(例如'div'或'input'等),不用于获取元素。如果你想动态地添加内容,你需要javascript/jquery –

+0

_Why_你想这样做吗?这不是MVC应该如何使用的。你不能只在那里包含一个部分,或者渲染一个包含你想要打印的HTML字符串的@变量? – CodeCaster

+0

jQuery的答案很棒!你想使用jQuery或C#吗?您是否想要将Action中的数据传递给视图? – shammelburg

回答

0

您可以使用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> 
+0

谢谢,有没有办法用Razor代码做到这一点? – user3736648

+0

我不认为你会在剃刀代码中获得'mainContentArea'。所以你不能这样增加。 –