0

Ping.HTMLPing.ASPXにアクセスできますが、MVC (4.0) プロジェクト (F5 によって同じサーバー、偽のサーバーにデプロイされている) からビューにアクセスしようとすると、404 が発生します。

これは、非常にデフォルトのビューとコントローラー (モデルなし)を備えた MVC 4 のテンプレートから作成されたバニラ プロジェクトです。

解決方法のヒントは?私はアイデアがありません...

編集

私のRouteConfig.csはこのようなものです

public class RouteConfig
{
  public static void RegisterRoutes(RouteCollection routes)
  {
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    routes.MapRoute(
      name: "Default",
      url: "{controller}/{action}/{id}",
      defaults: new { 
        controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
  }
}

Controllers フォルダーには、ÄDefault1Controller.cs* という名前のファイルが 1 つだけ含まれています。これだけを行います:

public class Default1Controller : Controller
{
  public ActionResult Index()
  {
    return View();
  }

  public ActionResult Test()
  {
    return View();
  }
}

編集

入力された正確な URL (もちろん、サーバー名だけを除いて) は次のとおりです。

> http://localhost:49642/Index  
> http://localhost:49642/Index.aspx  
> http://localhost:49642/Home/Index  
> http://localhost:49642/Home/Index.aspx  
> http://localhost:49642/Default/Index  
> http://localhost:49642/Default/Index.aspx
4

1 に答える 1

1

あなたが提供した情報に基づくと、ルーティングの問題のようです。リクエストしている URL はコントローラーを起動していません。

編集

MVC は慣例に従って機能するため、コントローラーに名前を付けるとDefault1Controller、一致する URL は で始まります/Default1

あなたが示した例では、にTest()移動することによってのみメソッドにアクセスできます。これによりhttp://localhost:49642/Default1/Test、通常は/Views/Default1/Test.aspx(または/Views/Default1/Test.cshtmlカミソリベースのビューの場合) にあるビューが返されます。

ルート テーブルがコントローラーとアクションにどのようにマップされるかについての詳細は、ASP.NETのルーティングの概要を確認してください。このリンクは古いバージョンの MVC 用のものであることに注意してください。

さらにお手伝いできることがあればお知らせください。

マット

于 2013-10-25T13:50:52.513 に答える