ASP.NET MVCコアプロジェクトを作成し、ビューを検索するためのカスタムフォルダを登録しました。私はこのようなカスタムIViewLocationExpander
クラスでこれをやった:Azureに公開した後にビューが見つかりません
public class AppsViewLocationExpander : IViewLocationExpander
{
public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context,
IEnumerable<string> viewLocations)
{
yield return "/MyViewLocation/A/Views";
//and so on...
}
そしてStartup.csでこのクラスを使用:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.Configure<RazorViewEngineOptions>(options =>
{
options.ViewLocationExpanders.Add(new AppsViewLocationExpander());
});
}
MyViewLocation/A /ビューフォルダの中にいくつかます* .cshtmlファイルとローカルデバッグセッションエラーなしで進行しました。 私はAzureにWebアプリケーションを公開しました。私は500 Internal Server Errorを取得しました。私はこのエラーをデバッグするためにVisual Studioを添付し、このメッセージを受け取りました:
System.InvalidOperationException:ビュー 'インデックス'が見つかりませんでした。次の場所を検索した:
/MyViewLocation/A/Views/Index.cshtml
を私が間違っていましたか? Views-Folderを別の場所に追加する必要がありますか?
EDIT:
私は私の最初のセットアップで私のproject.jsonを変更しますが、これは私のAzureの問題には役立ちません。しかし、おそらく私のローカルデバッグ中にビューを見つける必要がありました。
"publishOptions": {
"include": [
"wwwroot",
"Views",
"Areas/**/Views",
"MyViewLocation/**/Views",
"appsettings.json",
"web.config"
]
},
EDIT 2:
私は、FTPサーバに手動で* .cshtmlファイルをアップロードしました。それでも彼らはまだ見つからない。
ビューファイルがWebアプリケーションにデプロイされているか、欠落していますか? – DavidG
@DavidG私はFTP上でそれらを見つけることができないので、私はちょっと見逃していると思う。展開スクリプトを変更する必要がありますか? – Koopakiller
ビューファイルに設定されているビルドアクションは何ですか? (Visual Studioのファイルのプロパティ) – DavidG