web-dev-qa-db-ja.com

Visual Studio .netコアタグヘルパーが機能しない

さて、それに取り掛かりましょう。私はVisual Studio 2015を使用していますが、ASP.NETコアタグヘルパーが完全に動作を停止しました。何も変更していないため、理由はわかりません。私はある日働いていて、彼らはうまくいきました、そして私は翌日に来ました、そして今ASP.NETコアウェブプロジェクトはタグヘルパーをまったく見せません!?!私は新しいASP.NETコアmvc​​プロジェクトを作成しようとしましたが、そこでも機能しません!!!私は完全に行き詰まっています、Visual Studioでそれらを完全にオフにする設定がどこかにありますか?

他のほとんどの投稿によると、私は通常この問題を引き起こすすべてのものをチェックしたことに注意してください。私の_ViewImportsには次の行があります:

@addTagHelper *、Microsoft.AspNetCore.Mvc.TagHelpers

そして、ここに私が作成したばかりの新鮮なプロジェクトからの完全なproject.jsonファイルがあり、まったく変更を加えていません:-

{
  "dependencies": {
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },

  "frameworks": {
    "net452": { }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

また、すべての_Layoutビューと他のビューは、以前は表示されていた強調表示を完全に失っています。これまでにインターネットで見つけた他の誰もこの問題を抱えているようではありません。他の誰かが何かアイデアを持っていると思いませんか?

編集:

以下の回答の1つは、新しいソリューションの新しいプロジェクトでこれを解決しましたが、既存のソリューション/プロジェクトにまだ問題があります。ここに、これらの既存のプロジェクトの1つからのプロジェクトファイルの内容があります。うまくいけば、誰かがここで何かを見つけることができます...

{
  "dependencies": {
    "BundlerMinifier.Core": "2.2.306",
    "Configuration.Web": "1.0.0-*",
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0"
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools":  "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },

  "frameworks": {
    "net452": {
      "dependencies": {
        "Aristotle.Service": {
          "target": "project"
        },
        "Infrastructure": {
          "target": "project"
        }
      }
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

NuGetを使用してすべてのパッケージを最新バージョンに更新しました...

15
padigan

ようやくこれを修正しましたが、なぜ修正が機能するのか、なぜそもそも機能しなくなったのかはわかりませんが...

_ViewImportsの行は次のとおりです。

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

引用符を含めるように変更しました:-

@addTagHelper "*, Microsoft.AspNetCore.Mvc.TagHelpers"

それから私は再構築し、再びその作業をしました!?!以前と同様に、すべての「asp-」属性も強調表示されます。なぜ?!?え?

まだ見知らぬ人、引用符を削除して再構築しても、それはまだ機能します!まあ、少なくとも私の同僚がソース管理からファイルを取得するまで、彼らは引用符を元に戻す必要があります!!

その1つの図...

19
padigan

誰もが同じ問題に遭遇する場合は、_ViewImports.cshtmlの場所を確認してください。ビューの同じフォルダにある必要があります。たとえば、Pagesフォルダーに_ViewImports.cshtmlファイルが既にあるプロジェクトを作成しましたが、ビューファイルを別のフォルダーに作成して使用しているため、ASP.NETはビューの_ViewImports.cshtmlを見つけることができません。

誰でもproject.jsonを見つけるのに問題があるので、プロジェクトを右クリックして[Nugetパッケージの管理]を選択し、Microsoft.AspNetCore.Mvc.TagHelpersをインストールできます。

これらのアドバイスがすべての人に役立つことを願っています。

10
MaybeNextTime

Project.json依存関係に、TagHelpersがありません。 project.json-の依存関係セクションに以下の行を追加してください

"Microsoft.AspNetCore.Mvc.TagHelpers": "1.0.1",

Project.jsonを保存すると、VS2015は自動的にパッケージを復元します。

機能しない場合は、プロジェクトを右クリックして、[パッケージの復元]オプションをクリックします。

これが機能しない場合は、dotnet restore CLIコマンドを使用して復元してみてください。

3
Sanket

Areasの使用時に同じ問題が発生する場合は、_ViewImportsファイルをエリアのViewsフォルダに

2
elfico

@MayBeNextTimeが親切に通知してくれたので、タグヘルパーは一部のビューのみを支援していることに気付きました。 @Menaceは、ビューのあるすべてのエリアに_ViewImportsファイルの複製を追加することをお勧めしますが、アプリケーション内のすべてのビューでタグヘルパーが機能するように、_ViewImportsファイルをメインアプリケーションフォルダーに移動すると、 (ソリューションエクスプローラーのProgram.cs、Startup.cs、appsettings.jsonのすぐ隣または上)、アプリに重複したファイルを作成することなく、ユビキタスタグヘルパーの機能を実現します。

これをチェックしてください:

https://docs.Microsoft.com/en-us/aspnet/core/mvc/views/layout?view=aspnetcore-2.2

それは言う:

_ViewImports.cshtmlファイルは任意のフォルダー内に配置できます。その場合、そのフォルダーとそのサブフォルダー内のページまたはビューにのみ適用されます。

0
Shepherd

今日はこのproject.jsonがあります:

{
  "dependencies": {
    "BundlerMinifier.Core": "2.4.337",
    "Microsoft.ApplicationInsights.AspNetCore": "2.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.1.2",
    "Microsoft.AspNetCore.Mvc": "1.1.3",
    "Microsoft.AspNetCore.Mvc.TagHelpers": "1.1.3",
    "Microsoft.AspNetCore.Razor.Design": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Routing": "1.1.2",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.2",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.2",
    "Microsoft.AspNetCore.StaticFiles": "1.1.2",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.2",
    "Microsoft.Extensions.Configuration.Json": "1.1.2",
    "Microsoft.Extensions.Logging": "1.1.2",
    "Microsoft.Extensions.Logging.Console": "1.1.2",
    "Microsoft.Extensions.Logging.Debug": "1.1.2",
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.1.1"
    },
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0",
    //"Microsoft.VisualStudio.Web.CodeGeneration.Tools": "1.1.0-preview4-final",
    //"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.1.1",
    "Wallet.Core": "1.0.0-*"
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dnxcore50"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}
0
Pavel Biryukov