ASP.NET 视图中的区域?
Posted
技术标签:
【中文标题】ASP.NET 视图中的区域?【英文标题】:Regions In ASP.NET Views? 【发布时间】:2011-03-22 14:37:00 【问题描述】:我正在使用 razor 引擎制作一个 ASP.NET MVC 应用程序。 我想知道是否可以在视图中使用Regions。
类似:
#region blabla
<p>@Model.Name</p>
<p>...</p>
#endregion
这不起作用。有其他选择吗?
【问题讨论】:
可以使用Ctrl+M、Ctrl+L折叠标签 【参考方案1】:这适用于 Visual Studio 2015 及更高版本
(感谢@dotnetN00b
cmets 部分的示例):
<!-- #region Test -->
code here
<!-- #endregion -->
【讨论】:
如果您有 VS 2012,请下载 Web Essentials 2012。无论哪种情况,您都需要转到 VS(我是 2012)中的菜单,工具 > 扩展和更新 > 在线并搜索为工具。简而言之,IMO,在 MS 提供内置支持之前,这绝对是答案。 语法和<!-- #region Test -->
和<!-- #endregion -->
一样简单。
在没有插件的情况下与 VS2015 一起工作 - 很好的完美答案
这是这里唯一正确的答案,其他人都在谈论折叠PARENT TAG,这不是一回事
这应该是正确答案!无需任何插件即可与 VS2015 配合使用。【参考方案2】:
选择需要转换为区域的部分,然后右键单击并按CollapseTag
【讨论】:
正是我需要的!非常感谢! 我从不知道你可以做到这一点,虽然我不知道如何给这个地区起个名字。也就是说,我看不出有什么理由不应该将其标记为正确答案? 其实这是正确的答案。这个答案已被查克·诺里斯(Chuck Norris)授予赏金,所以不管绿色勾号在哪里。这是正确的。 请注意,当您关闭并重新打开有问题的文件时,这不会保存,这使得它们至少在我的情况下并不是很有趣。 另请注意,这实际上不允许您折叠一组元素,而是折叠它们的父元素和/或单个元素,在这种情况下不会产生预期的效果。就我而言,我正在代码块中寻找可折叠的#region
元素。由于我在 MVC 中使用 asp.net,因此我放置了区域标记,然后使用关闭/结束服务器标签。展开后很丑,但可以:<% // non-collapsed code .. %><% #region collapsable code #endregion %><% // resume non-collapsed code.. %>
或者你可以使用 Ctrl-M + Ctrl-H & Ctrl-M + Ctrl-U (***.com/questions/6457967)【参考方案3】:
在 Visual Studio(2015 及更高版本).html 或 .cshtml 代码编辑器中,键入region
,然后按Tab
键。这实现了#region
sn-p 代码,如下所示:
<!-- #region name -->
//Your html or cshtml codes
<!-- #endregion -->.
【讨论】:
在最近的 VS 版本中绝对是更好的选择 - 而且更自然 在 VS2013 中为我工作 在 Visual Studio 2019 Professional 中为我工作【参考方案4】:在 Visual Studio 中,您可以像这样手动添加轮廓区域:
创建或删除可折叠区域
选择要作为可折叠区域处理的文本。
要创建可折叠区域,请在“编辑”菜单上指向“大纲”,然后单击“隐藏选择”。
编辑器将选择变成一个区域,折叠它,然后 显示一个带有省略号 (...) 的框以指示该区域 包含折叠区域。您可以将鼠标指针悬停在框上 查看其内容。
要删除可折叠区域,请将其折叠,然后单击以将其选中。
在“编辑”菜单上,指向“大纲”,然后单击“停止隐藏当前”。
折叠和展开单个区域
要折叠区域,请单击编辑器边缘的减号 (-)。
要展开折叠区域,请单击边距中的加号 (+)。
折叠和展开所有区域
在“编辑”菜单上,指向“大纲”,然后单击“全部切换” 大纲。
From MSDN
但这并不实际。
对于 HTML,您可以在文本编辑器选项中手动编辑每个标签的大纲选项:
最小行的最小值为1才有效。
More info on MSDN
【讨论】:
大纲折叠点。我觉得很实用。【参考方案5】:我的上下文菜单中没有“CollapseTag”选项。我通常做的是:
-
选择文本。
转到编辑 -> 大纲 -> 隐藏选择。
或
使用 Ctrl+M、Ctrl+H
我正在使用 Microsoft Visual Studio Pro 2013。
【讨论】:
这是完美的(y)我喜欢它。太感谢了【参考方案6】:不,AFAIK 无法在视图中使用区域。您可以使用局部视图将视图的区域分组为可重用的局部视图。
见the newer answer;它起作用并达到预期的效果。
【讨论】:
没用,因为它们在关闭时不保存。【参考方案7】:Div 是可折叠的,因此您始终可以将它们与某种 id 一起使用来模拟区域。
<div id="BLABLA">...</div>
【讨论】:
【参考方案8】:您可以使用带有RenderPartial
或RenderAction
的母版页来缩小您的视图。两者都有自己的位置。
【讨论】:
【参考方案9】:regions 对我来说是视图中的一种工作,我可以定义一个区域但它不会崩溃。如果你使用@Artur 的使用折叠标签的方法,你就差不多了! :)
【讨论】:
【参考方案10】:请注意,使用区域可能会导致视图出现问题 - 即使它们在语法上是有效的,但代码和 HTML/SCRIPT 之间的指定通常会变得“混淆”,从而导致不可预知的行为。
DIV 无疑是“更好”的解决方案,尤其是当额外的 DIV 允许以后更改 CSS 样式时具有更大的灵活性。
如果您需要很多区域,请考虑进一步重构您的代码。
【讨论】:
以上是关于ASP.NET 视图中的区域?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 ASP.NET MVC3 区域和 Razor 视图会产生此错误?