0

好的,这就是交易。我有一个名为“Hotel”的控制器,其视图名为“Index”,我正在尝试生成代码,允许我生成以下形式的链接:

../Hotel?id=1

ID 作为参数传递。为此,我尝试使用 MapRoute:

@Html.RouteCollection.MapRoute("Hotel", "../{controller}/{id}", new { controller = "hotel" });

与 ActionLink 一起使用:

@Html.ActionLink("More >>>", "", "Hotel", new { id = item.HotelId }, null)

但是结果链接是这样的:

Hotel/Index/1

这会导致正确的位置,但会破坏我网站上所有链接的视觉一致性。我也尝试过 RouteLink,但没有成功。

提前致谢!

4

1 回答 1

0

您想让应用程序中的所有链接对名为“id”的参数使用标准查询字符串格式吗?如果是这样,从“默认”路由中的 url 和默认对象中删除 {id} 应该可以为您做到这一点。

如果您想将其限制为“酒店”控制器,那么您就在使用自定义路线的正确轨道上。首先,确保自定义路由出现默认路由定义之前,其次,在控制器/操作之外定义它,例如:

routes.MapRoute(
            "HotelRoute", // Route name
            "Hotel/{action}/", // URL with parameters
            new { controller="Hotel", action = "Index" } // Parameter defaults
        );

然后,您传入的任何参数都应作为名称/值对附加到查询字符串中。

于 2013-01-19T03:34:19.820 回答