繁体   English   中英

如何在ASP.NET MVC Controller上使用两个名称共享同一操作

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

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

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

    return View("Browse", members);
}

当前,我正在使用两个具有相同代码的ActionResult(分别名为“ Browse”和“ Index”),但是可能有更好的方法来执行此操作。 我研究了Attributes,但是ActionName Attribute不能帮助我满足需要。 此外,谷歌搜索为我提供了相同方法的建议, 但HTTP请求类型方法重载示例不同。 很感谢任何形式的帮助。

我在控制器中使用了索引动作,并为“成员/浏览”添加了独占路由,以指向“成员”控制器的“索引”动作。 因为相反, “ 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 }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM