如何在 ASP.NET MVC 控制器上与两个名称共享相同的操作

How can I share same action with two names on ASP.NET MVC Controller

情况是,我需要对 ASP.NET 控制器中的两个动作名称使用相同的方法。详细地说,说 http://mydomain/Members/Indexhttp://mydomain/Members/Browse 应该作为相同的,或者,只有成员控制器具有与下面相同的方法:

public ActionResult Browse()
{
    var members = _dbContext.Members.ToList();

    return View("Browse", members);
}

目前,我正在使用两个名为 "Browse" 和 "Index" 的 ActionResults,代码相同,但可能有更好的方法来执行此操作。我查看了属性,但 ActionName 属性无法满足我的需求。此外,google 搜索为我提供了 相同方法但不同 HTTP 请求类型 方法重载 示例的建议。非常感谢任何帮助。

我在控制器中使用了 Index 操作,并为 "Members/Browse" 添加了一个独占路由以指向 "Index" "Members" 控制器的动作。因为反过来,"Members/" 给出 404 错误。

现在是控制器动作(示例):

public ActionResult Index()
{
    var members = _dbContext.Members.ToList();

    return View("Index", members);
}

现在在 RouteConfig 中定义的路由:

routes.MapRoute(
    name: "MemberBrowseRoute",
    url: "Members/Browse",
    defaults: new { Controller = "Members", Action = "Index" });

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