1

私はホームコントローラーを持っています。私のホームコントローラーには、パラメーターなしとパラメーター付きの2つのインデックスメソッドがあります。のようなものです

    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";
        return View("index");
    }

    public ActionResult Index(int a)
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC! and Your Age is " + a;
        return View();
    }

global.asaxに2つのルートエントリのみを定義しました。

            routes.MapRoute(
                "Default1", // Route name
                "{Home}/{ID}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

            routes.MapRoute(
                "Default", // Route name
                "{controller}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

http:// localhost:7221http:// localhost:7221 / homeのようなurlと入力すると、ホームコントローラーのパラメーターがないindex()メソッドが起動します。

http:// localhost:7221 / home / 77と入力すると、ホームコントローラーのパラメーターを指定したindex(int a)メソッドが起動します。しかし、指定した2種類のURLを入力するとエラーが発生します。エラーメッセージは次のとおりです。コントローラータイプ「HomeController」のアクション「Index」の現在の要求は、次のアクションメソッド間であいまいです。タイプBeginnerMVC.Controllers.HomeControllerSystem.Web.Mvc.ActionResultのSystem.Web.Mvc.ActionResultIndex()タイプBeginnerMVC.Controllers.HomeControllerのIndex(Int32)

エラーをキャッチできません。ルーティングコードの何が問題になっていますか。助けてください。ありがとう

4

1 に答える 1

1

MVC のアクションでメソッドのオーバーロードを使用することはできません。達成しようとしていることを詳しく説明すると、それを行う方法についてアドバイスが得られます。

于 2012-08-06T05:54:43.177 に答える