【问题标题】:Collapse C# block within cshtml and save it折叠 cshtml 中的 C# 块并保存
【发布时间】:2011-08-26 07:56:45
【问题描述】:

我们的 cshtml 文件中有一些 C# 代码块,它们必须在 cshtml 中呈现,而不能在其他任何地方呈现(显然这不是一个出色的案例,但这是另一个问题)。

我们如何折叠或隐藏这些代码块,以便让我们的设计人员更顺畅地工作?我们还想在使用标记的进度演示期间隐藏这些代码块。

真正的问题是我们还必须将视觉表示保存到 SVN 中

这个或插件是否有任何原生 VS 2010 功能?也许有机会使用“部分”cshtml 页面,其中所有标记都在一个文件中,所有 C# 代码都在另一个文件中?

不幸的是,VS 不会折叠此类文件中#region 指令内的 C# 代码块。

最终有一个类似的问题Regions In ASP.NET Views?,但它没有给出关于在使用“折叠标签”上下文菜单操作项时如何保存折叠表示的答案。

【问题讨论】:

    标签: asp.net-mvc visual-studio-2010 asp.net-mvc-3 razor


    【解决方案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 的《架构企业应用程序》一书。不确定这在您的场景中有多重要。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      相关资源
      最近更新 更多