2015-05-27 4 views
2

Я кодирую MVC 5 View, и я хотел бы установить InnerHtml элемента 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-код в раздел.

Могу ли я помочь с этим?

Заранее спасибо.

+0

'TagBuilder' используется для генерации элемента html (например,' div' или 'input' и т. Д.), А не для получения элемента. Если вы хотите динамически добавлять контент, вам нужен javascript/jquery –

+0

_Why_ вы хотите это сделать? Это не то, как предполагается использовать MVC. Не можете ли вы просто включить туда часть или отобразить '@ variable', содержащую строку HTML, которую вы хотите распечатать? – CodeCaster

+0

Ответ на jQuery велик! вы хотели использовать jQuery или C#? Вы хотите передать данные из действия в представление? – 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» в коде Razor. поэтому вы не можете добавить этот путь. –