【问题标题】:ASP.NET MVC application, <text> tagASP.NET MVC 应用程序,<text> 标签
【发布时间】:2015-10-16 09:55:53
【问题描述】:

在我正在处理的 ASP.NET MVC 应用程序中,&lt;text&gt; 标记被用于.cshtml 文件中。

例子-

<text>some text</text>

它们提供什么功能?我在互联网上找不到任何对它们的引用:)

谢谢!

【问题讨论】:

  • 我认为它们没有任何功能,而是用于将内容写入页面

标签: html asp.net-mvc


【解决方案1】:

这和@标签有点相反...

在您处于“HTML 模式”的视图中,您可以像这样使用 Razor-block:

@{
  //Razor code
}

Razor 将检测 razor 块中的 HTML 标记并呈现它,但有时您只需要显示文字文本。这就是标签出现的地方......它切换回HTML模式而不使用实际的HTML标签......

因此,某些文本会在您的视图中呈现该确切文本(不带标签>): 评估示例,但此代码:

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


}
items
</div>

例如会呈现“您没有物品”或“您有 5 件物品”...

【讨论】:

  • 我认为说&lt;text&gt;....&lt;/text&gt;@相反 是一种误导,因为它们与使用@: 相同。
  • 标记用于多行:@: 仅执行单行。类似于 /* */ 和 // 评论...
【解决方案2】:

此元素用于明确标识内容。您可以在此处阅读相关信息:http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx

【讨论】:

  • 值得强调的是(如那篇文章中所述)&lt;text&gt;...&lt;/text&gt; 与使用 @: 完全可以互换。
【解决方案3】:

&lt;text&gt; 明确告诉 Razor 视图引擎这是文本而不是代码。当渲染器在页面上遇到困难或需要严格控制 html 时,我会使用它。

例如

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

请参阅 Scott Gu 的 this post

【讨论】:

  • 感谢 NikolaiDante 的回复!我能问一下您所说的“当渲染器在页面上挣扎时”是什么意思吗?
  • @ABogus 有时在解析 Razor 视图时,它会尝试将您的标准 html 标记解释为代码而不是文本。使用&lt;text&gt; 可以明确意图。
猜你喜欢
  • 2010-09-21
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-08
相关资源
最近更新 更多