折叠 cshtml 中的 C# 块并保存
Posted
技术标签:
【中文标题】折叠 cshtml 中的 C# 块并保存【英文标题】:Collapse C# block within cshtml and save it 【发布时间】:2011-08-26 07:56:45 【问题描述】:我们的 cshtml 文件中有一些 C# 代码块,它们必须在 cshtml 中呈现,而不能在其他任何地方呈现(显然这不是一个出色的案例,但这是另一个问题)。
我们如何折叠或隐藏这些代码块,以便让我们的设计人员更顺畅地工作?我们还想在使用标记的进度演示期间隐藏这些代码块。
真正的问题是我们还必须将视觉表示保存到 SVN 中。
这个或插件是否有任何原生 VS 2010 功能?也许有机会使用“部分”cshtml 页面,其中所有标记都在一个文件中,所有 C# 代码都在另一个文件中?
不幸的是,VS 不会折叠此类文件中#region 指令内的 C# 代码块。
最终有一个类似的问题Regions In ASP.NET Views?,但它没有给出关于在使用“折叠标签”上下文菜单操作项时如何保存折叠表示的答案。
【问题讨论】:
【参考方案1】:尝试使用 Visual Studio 的折叠功能。默认情况下,我认为关键是:
[Ctrl+M,Ctrl+H]隐藏任意选择, [Ctrl+M,Ctrl+U] 取消隐藏(折叠时)。
这应该允许您暂时隐藏任何代码。更多详情请访问MSDN
这就是你要找的吗?
进一步阅读后,您希望将它们保存为折叠状态,显然.cshtml
不支持#regions
。我想一个老套的解决方案可能是旧的:
@if(false)
<div>
<!--/*your long code*/-->
</div>
或类似的东西,但你明白了:)
【讨论】:
【参考方案2】:只需选择您的代码,右键单击并选择折叠标签
【讨论】:
这适用于原始问题中所述的代码。但是我们的目标是将表示(折叠与否,或至少折叠的能力 - 与区域一样)保存到 SVN - 显然我们必须解决这个问题,问题是关于这个【参考方案3】:我认为 cshtml 文件用于表示层的“用户控制”端。如果您的视图文件中有太多代码,那么我会重构代码并将可重用的组件移动到部分视图中。然后我会通过
包含这些部分视图@Html.RenderPartial("PartialViewName", Model.propertyToRender),
或者我会使用
@ Html.RenderAction("ActionName", "ControllerName") ;
【讨论】:
不幸的是,我们已经在给定的实现中拥有复杂的部分视图结构,因此我们无法利用这种方法。重构是个好主意,但我们负担不起,因为我们的进度非常激进,所以目前我们正在寻找隐藏 C# 块的方法,仅此而已 另一种选择是审查流程。有 UI 控件和表示逻辑层。无论表示逻辑层如何,设计人员都应该担心 UI 控件。这是根据 Dino 的《架构企业应用程序》一书。不确定这在您的场景中有多重要。以上是关于折叠 cshtml 中的 C# 块并保存的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2012(C#)中的可折叠(条件、循环)块[重复]