1

ASP.NET MVC アプリケーションをデフォルトで製品コントローラー インデックス アクションにリダイレクトする必要があります。だから私はRouteConfigをに変更しました

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Product", action = "Index", id = UrlParameter.Optional });
        }

しかし、それでもエラーが発生します

The view 'Index' or its master was not found or no view engine supports the searched locations. 
The following locations were searched: 
~/Views/Home/Index.aspx 
~/Views/Home/Index.ascx 
~/Views/Shared/Index.aspx 
~/Views/Shared/Index.ascx 
~/Views/Home/Index.cshtml 
~/Views/Home/Index.vbhtml 
~/Views/Shared/Index.cshtml 
~/Views/Shared/Index.vbhtml

アプリケーションをデバッグし、3 番目のルートのデフォルト セクションを確認しました。しかし、それはまだ言います

{[controller, Home]} 誰でも理由を教えてもらえますか?

4

3 に答える 3

2

これを試してください、それは私にとってはうまくいきました デフォルトルートがあなたのリストされたルートテーブルの一番下にあることを確認してください。ASP.NET MVC ルーティング テーブルに関しては、順序が重要です。

 routes.MapRoute(
                  "Default",
                  "{id}",
                  new { controller = "Product", action = "Index", id = UrlParameter.Optional }
              );

このツールもチェックしてください。

于 2013-01-28T11:41:15.937 に答える
0

これを試してみてください。デフォルトのルートをオーバーライドし、代わりにあなたのルートを使用します。

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

        routes.MapRoute(
            "DefaultApi", // Route name
            "{Controller}/{action}/{id}", // URL with parameters
            new { controller = "Product", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional }// Parameter defaults
        );
    }
于 2013-11-28T15:58:47.013 に答える
0

Product Controller のビューを追加していません。ビューを追加すると、期待どおりに機能します。

于 2013-01-28T12:15:16.197 に答える