C# 是否可以将两个视图与一个操作关联?
我有以下的定制路线C# 是否可以将两个视图与一个操作关联?,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有以下的定制路线 routes.MapRoute("custom", "Groups/{groupname}/{action}/{id}", new { controller = "Groups", action = "Index", id = UrlParameter.Optional }); 此自定义路由用于实现以下url模式 组/扑克俱乐部/成员/-列出扑克俱乐部组的所有成员 团体/扑克俱乐部/会员/鲍勃-列出鲍勃的会员详细信息 我尝试了以下方法,但不起作用。它混淆了asp.NET
routes.MapRoute("custom", "Groups/{groupname}/{action}/{id}", new { controller = "Groups", action = "Index", id = UrlParameter.Optional });
此自定义路由用于实现以下url模式
- 组/扑克俱乐部/成员/-列出扑克俱乐部组的所有成员
- 团体/扑克俱乐部/会员/鲍勃-列出鲍勃的会员详细信息
public ActionResult Members(string groupName, string id)
{
return View();
}
public ActionResult Members(string groupName)
{
return View();
}
我可以想到两种可能的解决方案:
- 具有不同的操作名称。e、 g.成员列表操作和成员操作
- 使用简单的if语句在视图中处理此问题
RWendi您只能有一个操作,但您可以在该操作中执行您想要的任何逻辑,并且您可以按名称调用视图:
return View("MyView");
在您的示例中,如果
id
字段为空,您只需返回一个不同的视图。其中显示returnview()代码>它需要参数,您可以让它使用您想要的任何视图
return View("Members", model);
您可以使用不同的方法:
[HttpGet]
public ActionResult Members(string groupName, string id)
{
return View();
}
[HttpPost]
public ActionResult Members(string groupName)
{
return View();
}