情况是,我需要在ASP.NET控制器中对两个动作名称使用相同的方法。详细说明,http://mydomain/Members/Index
和http://mydomain/Members/Browse
应该相同,或者只有成员控制器使用相同的方法:
public ActionResult Browse()
{
var members = _dbContext.Members.ToList();
return View("Browse", members);
}
目前,我使用两个名为“Browse”和“Index”的ActionResults使用相同的代码,但可能有更好的方法来执行此操作。我查看了属性,但 ActionName 属性并不能帮助我完成所需。此外,谷歌搜索为我提供了建议相同的方法,但不同的HTTP请求类型和方法重载示例。非常感谢任何帮助。
答案 0 :(得分:0)
我在控制器中使用了Index操作,并为“Members / Browse”添加了一条独占路线,指向的“Index”操作成员“控制器。因为反过来说,“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 }
);