6

ルーティングの競合などを考えると、何年も前からこれを試してみた後、私は最初から別のプロジェクトを開始しました。プロパティと呼ばれるMVCコントローラに特別なものがありますか?

rootサイト(http://site/properties)にアクセスしようとすると、「プロパティ」という名前のMVCコントローラが常に403.14の禁止メッセージを返すように見えますが、他のページは(http://site/properties/index)で動作します。

地域のコントローラとしてはうまく動作しますが、メインサイトでは作成できません。

私は誰もがなぜそれを知っているのだろうと思っていました。

答えて

2

問題は、あなたのプロジェクトにはPropertiesという名前のフォルダが既に含まれていて、それは主にAssemblyInfo.csファイルで使用されていますが、そこには他のものも含まれているということです。クライアントに送信するファイルを解決するために使用されるエンジンは、ルーティング上のファイルとフォルダに優先順位を付けます。したがって、URL http://site/propertiesはそこからコンテンツをサーバーに送信しようとしていますが、とにかくブロックされています。

3

DavidG's answerに加えて。

プロジェクトを公開すると、コンパイルされたビルドには[プロパティ]フォルダがありません。ローカルで開発中にこの問題を解決するには、RouteExistingFilestrueに設定して、ASP.NETルーティングがすべての要求を処理できるようにします。

public static void RegisterRoutes(RouteCollection routes) 
{ 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.RouteExistingFiles = true; 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
} 
関連する問題