我有以下自定义路线
routes.MapRoute("custom", "Groups/{groupname}/{action}/{id}", new { controller = "Groups", action = "Index", id = UrlParameter.Optional });
此自定义路由是为了实现以下网址架构
我尝试了以下但它不起作用。它混淆了asp .net mvc选择哪个动作。
public ActionResult Members(string groupName, string id)
{
return View();
}
public ActionResult Members(string groupName)
{
return View();
}
我能想到两种可能的解决方案:
我非常想保留我的网址方案。因此,根据我原来的问题,如何将两个不同的观点与一个行动相关联?感谢。
RWendi
答案 0 :(得分:3)
您只能有一个操作,但您可以在该操作中执行所需的任何逻辑,并且可以按名称调用视图:
return View("MyView");
在您的示例中,如果id
字段为空,则只返回不同的视图。
答案 1 :(得分:2)
它显示return View();
它需要参数,您可以使用它来使用您想要的任何视图
return View("Members", model);
答案 2 :(得分:0)
您可以使用不同的方法:
[HttpGet]
public ActionResult Members(string groupName, string id)
{
return View();
}
[HttpPost]
public ActionResult Members(string groupName)
{
return View();
}