如何在VS中为Razor页面(cshtml)添加自定义代码段

时间:2019-12-10 20:05:48

标签: visual-studio asp.net-core razor

是否可以使用Visual Studio中的代码片段管理器为Razor页面添加自定义代码片段?

我可以为HTML添加代码段,但在任何地方都找不到CSHTML。

我正在使用Visual Studio Community 2019 16.4.1

3 个答案:

答案 0 :(得分:1)

那是因为没有专用的Cshtml代码段。 Razor代码为C#或VB,因此这些代码段在代码块中有效。 要使用这些片段,您只需打开一个代码块:

  • 键入@或@(均可打开显式语句
  • 键入foreach
  • 两次键入 tab 激活代码段

要编辑代码段,请按 Ctrl + K Ctrl + B

答案 1 :(得分:1)

这在Visual Studio 2019中为我工作了

创建并保存XML .snippet文件。示例模板:

<CodeSnippet Format="1.1.0">
<Header>
    <Title>NameOfSnippet</Title>
    <Author>YourName</Author>
    <Shortcut>ShortCutName</Shortcut>
    <Description>Description</Description>
    <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
</Header>
<Snippet>
    <Declarations>
        <Literal>
            <ID>Id</ID>
            <ToolTip>Please add an ID</ToolTip>
            <Default>REPLACE_ID</Default>
        </Literal>
    </Declarations>
    <Code Language="html"><![CDATA[<div id="$Id$">Example HTML Snippet</div>$end$]]></Code>
</Snippet>

  1. 工具>代码段管理器>语言下拉菜单:html>导入
  2. 导航到您的.snippet文件并打开
  3. 同时选择“ 我的HTML代码段” HTML

enter image description here

  1. 选择完成并确定
  2. 打开一个cshtml文件,然后输入ShortCutName>命中选项卡

您应该在cshtml中看到您的代码段,因为语言是html,而不是CSharp,因此无需打开代码块

答案 2 :(得分:0)

当我尝试解决此问题时,我的心理模型中缺少的是.cshtml文件由位于其各自语言环境中的多个部分组成。例如,您可能有:

  • 一个<style></style>块,其内容为CSS,而VS可以识别其中的CSS片段,
  • 一个<script></script>块具有javascript内容,而VS可以识别javascript代码段
  • 一个@块,其中vs可以识别CSharp或基本代码段
  • 如果您不在其他地点之一,则会识别html代码段。

在我的情况下,我想添加一个JavaScript代码段,但我认为可用代码段直接与我的文件类型绑定在一起,因此我试图将它们添加为HTML代码段(然后当它们没有显示时感到失望在我的脚本标签中。)

ALSO,需要特别注意的是,至少在VS 2017中,您可能需要重新启动VS才能使编辑器识别任何新的片段。