ASP.NET MVC 应用程序,<text> 标签

4
在我正在处理的ASP.NET MVC应用程序中,.cshtml文件中使用了<text>标签。
例如 -
<text>some text</text>

它们提供什么功能?我在互联网上找不到任何参考资料 :) 谢谢!

我认为它们没有任何功能,而是用于将内容写入页面。 - Karthik Chintala
3个回答

6

它们有点像@标签的相反...

在视图中,你处于"HTML模式",然后可以使用类似这样的Razor块:

@{
  //Razor code
}

Razor会在razor代码块中检测HTML标签并进行渲染,但有时候您只需要显示纯文本。这就是需要使用<text>标签的地方... 它可以切换回HTML模式而不使用实际的HTML标签...

因此,在您的视图中将呈现一些文本(不包括<text>标签):

这是一个复杂的例子,但是以下代码:

<div>
you have
@{
 if(numItems == 0)
 {
   <text>no</text>
 }
 else
 {
   @numItems
 }


}
items
</div>

将会呈现“您没有物品”或“您有5个物品”作为例子...

1
我认为说 <text>....</text>@相反是误导性的,因为它们与使用 @: 相同。 - Richard Ev
"<text>标签用于多行:@:仅适用于单行。类似于/* */和//注释..." - Steve Cooper

2

1
值得强调的是(正如该文章中提到的),<text>...</text> 与使用 @: 完全可以互换。 - Richard Ev

0

<text> 明确告诉 Razor 视图引擎这是文本而不是代码。当渲染器无法处理页面或需要严格控制 HTML 时,我会使用它。

例如:

<div id="content" @if (ViewData["PageLayout"] != null){
<text>class="@ViewData["PageLayout"].ToString()</text><text>"</text>
}>

查看 Scott Gu 的这篇文章


谢谢您的回复,NikolaiDante!我可以问一下您所说的“当渲染器无法处理页面”是什么意思吗? - A Bogus
@ABogus 有时候在解析 Razor 视图时,它会尝试将您的标准 HTML 标记解释为代码而不是文本。使用 <text> 可以明确表达意图。 - NikolaiDante

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接