【发布时间】:2015-10-16 09:55:53
【问题描述】:
在我正在处理的 ASP.NET MVC 应用程序中,<text> 标记被用于.cshtml 文件中。
例子-
<text>some text</text>
它们提供什么功能?我在互联网上找不到任何对它们的引用:)
谢谢!
【问题讨论】:
-
我认为它们没有任何功能,而是用于将内容写入页面
标签: html asp.net-mvc
在我正在处理的 ASP.NET MVC 应用程序中,<text> 标记被用于.cshtml 文件中。
例子-
<text>some text</text>
它们提供什么功能?我在互联网上找不到任何对它们的引用:)
谢谢!
【问题讨论】:
标签: html asp.net-mvc
这和@标签有点相反...
在您处于“HTML 模式”的视图中,您可以像这样使用 Razor-block:
@{
//Razor code
}
Razor 将检测 razor 块中的 HTML 标记并呈现它,但有时您只需要显示文字文本。这就是标签出现的地方......它切换回HTML模式而不使用实际的HTML标签......
因此,某些文本会在您的视图中呈现该确切文本(不带标签>): 评估示例,但此代码:
<div>
you have
@{
if(numItems == 0)
{
<text>no</text>
}
else
{
@numItems
}
}
items
</div>
例如会呈现“您没有物品”或“您有 5 件物品”...
【讨论】:
<text>....</text> 是@ 的相反 是一种误导,因为它们与使用@: 相同。
此元素用于明确标识内容。您可以在此处阅读相关信息:http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx
【讨论】:
<text>...</text> 与使用 @: 完全可以互换。
<text> 明确告诉 Razor 视图引擎这是文本而不是代码。当渲染器在页面上遇到困难或需要严格控制 html 时,我会使用它。
例如
<div id="content" @if (ViewData["PageLayout"] != null){
<text>class="@ViewData["PageLayout"].ToString()</text><text>"</text>
}>
请参阅 Scott Gu 的 this post。
【讨论】:
<text> 可以明确意图。