20

そのため、実行時にasp.net mvc3アプリでエラーが発生しました。コードを確認すると、赤い線が表示されていることがわかりました。エラーリストには、そのような関数は定義されていませんが、正常コンパイルされます。エラーは実行時にのみ表示されますか?私はT4MVCを使用していますが、このような問題を回避するのに役立つことを期待していました!?

これは仕様によるものですか、それとも私はここで何か間違ったことをしていますか?

ここに画像の説明を入力してください

上記のコードは、そのようなメソッドがないため、コンパイルしないでください。

実行時に失敗します:

ここに画像の説明を入力してください

この種のことは、未定義のメソッドだけでなく、変数などでもよく起こります。

4

1 に答える 1

33

これは仕様によるものです。MVCビューのビルドはデフォルトで無効になっています。次のように、VisualStudioでMVCビューのビルドを有効にできます。

  • VisualStudioでプロジェクトを右クリックします
  • プロジェクトをアンロードします
  • プロジェクトを編集する

  • の値をMvcBuildViewsfalseからtrueに変更します

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ...
    <MvcBuildViews>true</MvcBuildViews>
    ...

  • プロジェクトをリロード

次回コンパイルしてMVCビューにエラーが発生した場合、コンパイルされません。欠点は、コンパイルプロセスに時間がかかることです。

アップデート

これがSOに関する回答であり、エラーを回避する方法を説明しています。

allowDefinition='MachineToApplication'として登録されているセクションをアプリケーションレベルを超えて使用するとエラーになります。このエラーは、仮想ディレクトリがIISでアプリケーションとして構成されていないことが原因で発生する可能性があります

于 2011-02-16T08:56:00.447 に答える