【问题标题】:Is there a way to add a designer view for the cshtml razor editor?有没有办法为 cshtml 剃须刀编辑器添加设计器视图?
【发布时间】:2013-01-31 12:33:11
【问题描述】:

我正在使用我们开发的内部工具来解析带有生成模型的剃须刀模板。 问题是现在它每次都需要加载模板才能解析它。 我想添加一个编辑器,这样我就可以在编写 cshtml 的同时预览它,所以我认为最好的方法是使其成为 Visual Studio 扩展。

我研究了网络,在我看来你可以为 VS 编写自定义编辑器,但是我必须自己编写编辑器,我不想这样做。

有没有办法使用 VS2012 中内置的现有剃须刀编辑器,并使用我的控件添加一个预览选项卡,从剃刀编辑器获取当前文本,以便我可以解析它并显示预览?

想要使用现有编辑器的原因是用于着色、智能感知、错误处理等。

【问题讨论】:

    标签: razor custom-controls visual-studio-extensions


    【解决方案1】:

    对于 Razor(CSHTML 和 VBHTML)文件的设计视图没有内置支持。造成这种情况的部分原因是它们是代码和 HTML 的混合体,解析范围从“非常困难”到“超级不可能”。

    话虽如此,VS2012 中有一个名为 Page Inspector 的超酷功能,它可以向您显示真实呈现的页面以及生成它的代码(例如您的 Razor 视图)以及它们之间的映射,即使其中一些内容来自从布局页面或局部视图。

    查看http://msdn.microsoft.com/en-us/library/hh420390(v=VS.110).aspx 并查找“页面检查器”部分,其中包含指向深入描述该功能的多篇博文和视频的链接。

    摘录如下:

    Page Inspector 是一种直接在 Visual Studio IDE 中呈现网页(HTML、Web 窗体、ASP.NET MVC 或网页)的工具。您可以使用 Page Inspector 检查源代码和结果输出。对于 ASP.NET 页面,您可以使用 Page Inspector 来确定哪个服务器端代码生成了呈现给浏览器的 HTML 标记。即使启用了默认的 ASP.NET 捆绑和缩小功能,Page Inspector 也能正常工作。

    【讨论】:

    • 如果在设计时解析“超级不可能”,那么为什么它在运行时如此容易解析?为什么不能只用静态占位符值替换代码段?
    • @Dan Razor 解析器解析很少的 HTML 或 C#。它主要关注寻找指示转换的@,以及HTML和C#之间的转换是隐式的其他一些地方,例如在C#块中直接有一个HTML标签(这不是有效的C# )。再加上 C# 和 HTML 都在发展的事实,Razor 解析器的编写使得对这两种语言中的任何一种的大多数 更改都不会影响解析器。所以也许真相更接近“非常困难”而不是“超级不可能”。
    • 页面检查器在 VS 2015 中不存在太糟糕了。:(
    猜你喜欢
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多