2

RazorGenerator https://github.com/RazorGenerator/RazorGeneratorを使用してメニューを DLL ファイルにアウトソーシングし、複数のプロジェクトで共有できるようにしています。これらのビューでは、次のようなリストを生成する foreach ループがあります。

@foreach (var myItem in MyClass.Instance.Elements) {
    <li>
        <img src="@myItem.Icon" />
    </li>
}

しかし、私はそれらをコンパイルすることはできません: RazorGenerator によって生成された MyView.generated.cs ファイルは、img タグの次の行を作成しています:

WriteAttribute("src", Tuple.Create(" src=\"", 1038), Tuple.Create("\"", 1057)

「WriteAttribute」が定義されていないというエラーが発生したため、ここに問題があります。このメソッドに関する多くの情報が見つかりません。これは RazorGenerator のメソッドのようです。

奇妙なことに、RazorGenerator を使用するのは初めてなので、以前にテスト プロジェクトで同じコードをテストしたことがあります。そこでは同じループで動作しますが、違いはわかりません。どちらのプロジェクトも、同じバージョンに同じ参照とアセンブリがあります。私は、WriteAttribute() が WebPageExecutionBase から来たことを知りました。

どうすれば問題を解決できますか?

4

2 に答える 2

1

両方のプロジェクトのすべてのパッケージを確認したところ、NuGet-Package Microsoft.ASP.NET.WebPages が古いバージョンでインストールされていることがわかりました。testing プロジェクトで行ったように、プロジェクトの NuGet-Manager で [すべて更新] ボタンを使用し、エラーが表示されなかったため、理由がわかりません。この投稿を書いている時点で、NuGet-Console を使用してパッケージを最新バージョンの 3.1.2 に更新したところ、期待どおりに動作しました。

于 2015-07-14T20:31:28.297 に答える
0

ローカル コピーは正しい generated.cs ファイルを生成しないため、上記のように Build Action を none に設定しないでください。

于 2015-08-11T15:57:26.627 に答える