1

「/」を www.abc.com/india などの仮想 URL にルーティングしようとしていますが、UI でルーティングできません。

MVC でデフォルトの URL をルーティングするにはどうすればよいですか。

これはroute.configと書いています

routes.MapRoute(
           name: "HomePage",
           url: "/",
           defaults: new { controller = "Home", action = "index" }
           );

そして私のテスト関数は

    [TestMethod]
    public void Home_Index_test_with_no_Parameter()
    {
        var context = new StubHttpContextForRouting(requestUrl: "~/");
        var routes = new RouteCollection();
        RouteConfig.RegisterRoutes(routes);

        // Act
        var routeData = routes.GetRouteData(context);

        // Assert
        Assert.IsNotNull(routeData, "~/ url is getting routed properly");
        Assert.AreEqual("home", routeData.Values["controller"],
                        "~/ url is not getting routed properly");
        Assert.AreEqual("index", routeData.Values["action"], "~/ url is not getting routed properly");

    }

しかし、このテストは失敗します

4

1 に答える 1

4

みんな助けてくれてありがとう

問題は、ルーティングする URL のプレフィックスとして「/」を使用できないことです。以下は作業コードです

routes.MapRoute(
           name: "HomePage",
           url: "",
           defaults: new { controller = "Home", action = "index" }
           );

そのための単体テスト

    [TestMethod]
    public void Home_Index_test_with_no_Parameter()
    {
        var context = new StubHttpContextForRouting(requestUrl: "~/");
        var routes = new RouteCollection();
        RouteConfig.RegisterRoutes(routes);

        // Act
        var routeData = routes.GetRouteData(context);

        // Assert
        Assert.IsNotNull(routeData, "~/ url is getting routed properly");
        Assert.AreEqual("Home", routeData.Values["controller"],
                        "~/ url is not getting routed properly");
        Assert.AreEqual("index", routeData.Values["action"], "~/ url is not getting routed properly");

    }
于 2013-07-02T06:05:31.707 に答える