2017-09-22 50 views
-1

我想使用一个字符串变量,它可以包含值h1,h2,h3等来构建一些html。这对于开始标记很有效,但对于结束标记不能很好地工作。如果我写使用元素的变量名称构建html标记

@{ var tag = "h1" ; } 
<@tag>some title here</@tag> 

我最终的HTML

<h1>some title here</@h1> 

一个变通,这似乎工作

<@tag>some title here<@("/"+tag)> 

,但它是相当难看。我需要在这里使用一些转义序列吗?

+0

会创建一个自定义HTML帮助器的工作?像'@ Html.MyCustomTag(“h1”,“这里有些标题”)使用'TagBuilder'? –

+0

@PaulAbbott我相信这将是一个完美的方法,但我对上述问题中需要使用的语法(或转义序列)感到好奇。 –

+0

在MVC4和MVC5中都能正常工作 –

回答

0

我不知道哪一个剃须刀版本使用的是

,但我在MVC4测试你的代码,它完美

它会使<h1>something</h1>

0

您可以使用Html.Raw。

string lineTemplate = "<h{0}>{1}</h{0}>"; 
for (int tagCounter = 1; tagCounter < 7; tagCounter++) 
{ 
    @Html.Raw(string.Format(lineTemplate, tagCounter, "Header "+ tagCounter)); 
}