MVC路由 - 动态网址名称

时间:2017-12-13 10:01:41

标签: asp.net-mvc

我们有一个MVC应用程序,我的主页中有不同的链接。每个链接在Controller中触发相同的操作。我需要根据用户点击的链接动态显示控制器的不同名称。请让我知道如何实现这一目标。

例: 现有:http://myapp.com/mycontroller/myaction

我需要什么:

http://myapp.com/mycontroller1/myaction

http://myapp.com/mycontroller2/myaction

http://myapp.com/mycontroller3/myaction

PS:mycontroller1,mycontroller2,mycontroller3不是实际控制器

2 个答案:

答案 0 :(得分:0)

如果在RouteConfig RegisterRoutes中添加

routes.MapMvcAttributeRoutes();

在您可以使用的操作中

[Route("mycontroller1/myaction")]
[Route("mycontroller2/myaction)]
[Route("mycontroller3/myaction)]
public ActionResult Index()
{
}

我认为这是一种简单的方法

答案 1 :(得分:0)

  

您可以在必需的链接上调用以下网址,这些网址会将唯一ID传递给   相同的控制器方法,基于该方法,视图将是   动态路由到所需的路径..

触发/事件:

 Link-1 http://myapp.com/mycontroller/myaction?id=1
 Link-2 http://myapp.com/mycontroller/myaction?id=2
 Link-3 http://myapp.com/mycontroller/myaction?id=3

C#代码

public ActionResult Index(int id)
{
  if(id==1)
  {
    return View ("mycontroller1/myaction");
  }
  else if(id==2)
  {
    return View ("mycontroller2/myaction");
  }
  else if(id==3)
  {
    return View ("mycontroller3/myaction");
  }
  return View();
}

快乐的编码!!