注:これは、最初のページが正常に動作するため、別の質問と重複しているわけではありません。MVCコントローラが原因で404エラーが検出されない
私はこれまでに多くの投稿を準備しており、近いものはありません。これは、開発ボックスでローカルに実行するとうまく動作します。私はサーバーにコピーした後、私は問題を参照してください。私のデフォルトルートは正常に動作し、予想されるインデックスページを取得します。
public ActionResult Index()
{
return View();
}
私RouteConfigは含まれています。私はインデックス以外に到達したい場合
routes.MapRoute(
name: "AnnualFees",
url: "{controller}/{action}/{id}",
defaults: new { controller = "AnnualFees", action = "Index", id = UrlParameter.Optional }
);
問題が発生します。たとえば、このアクションによって404が見つかりませんでしたエラーが発生します。
public ActionResult renderForm()
{
return PartialView("_formPanel");
}
この場合も、ローカルのデベロッパーボックスに表示されているとおりに動作します。しかし、サーバー上で私は得る要求されたURL:/ AnnualFees/renderForm 404エラーリソースが見つかりません。
UPDATE
[OK]を、いくつかのより多くの研究と試行錯誤をして、私は何かを発見して追加するにはもう少しを持っています。
このアプリケーションはIISの現在のWebサイトで実行されています。そこで、Webサイトルートの下に仮想フォルダ/アプリケーションを作成しました。私がwww.mysite.com/AnnualFeesに移動すると、MVCアプリケーションの最初のページが期待どおりに取得されます。しかし、私がAnnualFeesControllerの他のアクションにアクセスできる唯一の方法は、動作するwww.mysite.com/AnnualFees/AnnualFees/renderFormのようなコントローラー名を2倍にする必要がありますが、醜いです。どのように私は冗長性を取り除くことができますか?
[MVC Webサイトで404エラーを取得する](http://stackoverflow.com/questions/5068770/getting-404-error-on-mvc-web-site) –
設定が必要ですIISが適切に現時点では、www.mysite.com/AnnualFeesはアプリケーションを参照し、コントローラを含むルート内のすべてのデフォルトを使用します。 "www.mysite.com/AnnualFees/AnnualFees"と同じ結果が得られます。必要なセットアップが見つかりました[ここ](http://serverfault.com/questions/68497/how-do-you-configure-iis-7-to-use-a-subdirectory-as-the-default-document) – Andrei
@Andreiは、セットアップIISによって何を意味するのかよく分かりません。このアプリは既存のウェブサイトで実行する必要があるため、サイトの/ AnnualFeesサブフォルダ内で実行する必要があります。私は/ AnnualFeesがアプリのルートになる必要がありますが、それでもサイトの他のフォルダにあるファイルにアクセスする必要があります。 –