2015-05-27 57 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'。所以你不能這樣增加。 –