2

Asp.Net MVC 4 Razor にこの非常に奇妙なエラーがあり、ビュー内に次のコードがあります。

@Html.InlineEditingContentText(CS.General_v4.Enums.HtmlTagName.Span, VisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Title, "weather-widget-title masterpage-widget-title")

InlineEditingContentText内部で持っている拡張メソッドです。渡される 2 番目のパラメーターは列挙パラメーターであり、上からわかるように、値はVisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Titleです。拡張メソッドをデバッグするInlineEditingContentTextと、実際に受信される 2 番目のパラメーターは受信されませんVisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_TitleVisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Header_LoggedOutText、たまたま ContentTextIdentifier 列挙の次の値になりますVisitGozo.Enums.VisitGozoEnums.ContentTextIdentifier.MasterPage_Weather_Title

列挙に値を割り当てていないため、それぞれのint値は自動的に増分されます。

  • 不思議なことに、まったく同じプロジェクトを別のワークステーションにロードすると、問題なく動作します。
  • また、ビューにいくつかの変更 (空白を追加するなど) を実行して保存すると、これも正常に機能します。

この奇妙な問題が発生している理由について、考えられる洞察はありますか?


編集#1:また、展開サーバーにWebサイトをアップロードしたとき、同じワークステーションを使用してコンパイルした後、エラーも引き継がれました

編集 #2: 2013-10-22 > 実際の運用サーバーにファイルを展開する場合でも、この同じ問題が引き続き発生し、そのような誤った列挙値が引き継がれています。この問題を解決する唯一の方法は、ビューをサーバーまたはローカルから削除し、再度上書きすることです。この問題を解決する方法はありますか? ビューをキャッシュするべきではないので、なぜこれが起こっているのか本当に理解できませんか? どんな形でも助けていただければ幸いです!

4

1 に答える 1

1

ほとんどの場合、キャッシュされたファイルは消去されていません。たまにあるかもしれません。

  • IIS を使用している場合は、対応する一時 ASP.NET フォルダーを削除します。たとえば、プロジェクトが 64 ビット Framwork 4.0 の場合、パスは次のようになります: %WinDir%\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\

  • IIS Express などを使用している場合は、停止してから再度開始する必要がある場合があります。

Razor ファイルを更新すると動的コンパイルが強制され、問題が解決しました。

于 2013-10-02T18:23:10.750 に答える