Почему фрагмент кода mvcaction4 не реагирует?

когда я пишу mvcaction4 и нажать tab 2 раза это не сработает. В настоящее время я использую Visual Studio 2017 Community Edition.

4 ответов


фрагменты MVC4 поддерживаются в VS2017. MVC 4-это необязательный компонент, который является частью веб-рабочей нагрузки. Если вы не установили его и пытаетесь открыть проект MVC 4, он должен предложить вам добавить отсутствующий компонент в Visual Studio.

поддержка MVC 4 ограничена. Мы не позволяем вам создавать новые проекты MVC 4, но вы можете - Открыть существующие проекты MVC 4 - Контроллеры/виды лесов - Используйте фрагменты

редактировать фрагменты MVC4 будут отображаться только для проекта MVC 4. Фрагменты привязаны к .csproj файл/.vbproj ProjectTypeGuid свойства.

Ниже приведен скриншот из фрагментов MVC4 в VS2017

enter image description here


Я думаю mvcaction4 и mvcpostaction4 фрагменты были удалены из Visual Studio 2017.

все, что вы можете сделать, это импортировать эти фрагменты из Visual Studio 2015. Вот шаги, которые вы можете сделать:

  1. предположим, что вы уже установили Visual Studio 2015 и Visual Studio 2017.
  2. откройте Visual Studio 2017, затем нажмите меню [Сервис] - > [диспетчер фрагментов кода]
  3. переключить язык CSharp на Фрагменты Кода Менеджер!--18--> окно
  4. ударил
  5. Enter C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Visual Studio 2015\Snippets\VC#33\ASP.NET MVC 4 и выберите все элементы (mvcaction.snippet и mvcpostaction.snippet )
  6. нажмите готово кнопка для завершения импорта.

У меня была такая же проблема, поэтому я последовал ответу Уилла Хуанга, но создал свой собственный фрагмент. Я оставлю фрагмент кода ниже.

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets >
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>mvcaction</Title>
            <Shortcut>mvcaction</Shortcut>
            <Description>Code snippet for an MVC Action</Description>
            <Author>Jordan Gregory-Wallis</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>name</ID>
                    <ToolTip>Action Name</ToolTip>
                    <Default>Action</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[public ActionResult $name$()
    {
        return View();
    }]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

Первое, что нужно сделать, это проверить, что фрагмент, который вы хотите использовать, существует. Откройте "Диспетчер фрагментов кода" (меню "Сервис" или поиск с помощью CtrlQ).

убедитесь, что фрагмент, который вы хотите использовать в списке. Если это так...

отключить все ваши расширения (Resharper, все). Если проблема устранена, включите расширения по одному, пока не будет выявлена проблема.

Если фрагменты не работают после отключив все расширения, оставьте их отключенными и проверьте привязки ключей Visual Studio Tools -> Options -> Environment -> Keyboard или CtrlQ поиск на клавиатуре. Поиск Edit.InvokeSnippetFromShortcut. Убедитесь, что он установлен в Tab (вы также можете проверить/установить Edit.InsertSnippet).

повторно включите расширения и проверьте, все ли еще работает.