Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在MVC5中不显示控制器名称的情况下从一个控制器操作方法路由到另一个控制器操作方法_C#_Asp.net Mvc_Asp.net Mvc 4_Asp.net Mvc 5_Asp.net Mvc Routing - Fatal编程技术网

C# 如何在MVC5中不显示控制器名称的情况下从一个控制器操作方法路由到另一个控制器操作方法

C# 如何在MVC5中不显示控制器名称的情况下从一个控制器操作方法路由到另一个控制器操作方法,c#,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-5,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc 5,Asp.net Mvc Routing,我在Route.config中有两个不同的MapRoutes,如下所示 routes.MapRoute( name: "Default", url: "{action}", defaults: new { controller = "Index",action = "Index", id = UrlParameter.Optional } ); routes.MapRoute( name: "SubjectRoute", url: "{action}",

我在Route.config中有两个不同的MapRoutes,如下所示

routes.MapRoute(
    name: "Default",
    url: "{action}",
    defaults: new { controller = "Index",action = "Index", id = UrlParameter.Optional }
);

routes.MapRoute(
    name: "SubjectRoute",
    url: "{action}", 
    defaults: new { controller = "Subjects", action = "Subjects" }
);
我的
@HTML.ActionLink
IndexController

@Html.ActionLink("SUBJECTS", "Subjects","Subjects", new { }, new { @class = "text" })
现在,当我单击Index action方法中的SUBJECTS链接时,它应该转到SUBJECTS controller中的SUBJECTS action,而不在URL中显示控制器名称

如何做到这一点

routes.MapRoute(
    name: "SubjectRoute",
    url: "Subjects", 
    defaults: new { controller = "Subjects", action = "Subjects" }
);

routes.MapRoute(
    name: "Default",
    url: "{action}/{id}",
    defaults: new { controller = "Index",action = "Index", id = UrlParameter.Optional }
);
有了以上内容,请致电

@Html.ActionLink("SUBJECTS", "Subjects","Subjects", new { }, new { @class = "text" })
应该产生

/主题
默认和更通用的路由现在将捕获所有其他请求,并将它们路由到
IndexController
,该控制器现在充当站点根目录/索引

例如假设

public class IndexController : Controller {
    public ActionResult Index() {...}
    public ActionResult ContactUs() {...}
    public ActionResult About() {...}
}
基于上述控制器的可用路由为

/
/索引
/联系人
/关于
有了以上内容,请致电

@Html.ActionLink("SUBJECTS", "Subjects","Subjects", new { }, new { @class = "text" })
应该产生

/主题
默认和更通用的路由现在将捕获所有其他请求,并将它们路由到
IndexController
,该控制器现在充当站点根目录/索引

例如假设

public class IndexController : Controller {
    public ActionResult Index() {...}
    public ActionResult ContactUs() {...}
    public ActionResult About() {...}
}
基于上述控制器的可用路由为

/
/索引
/联系人
/关于

您不能-您的路线需要能够被区分(并且您显示的两条路线都是相同的-它们都由一个段组成)是否有其他方法来实现这一点?您需要有一些东西来区分不同的控制器。您不能-您的路线需要能够被区分(你所展示的两条路线都是相同的——它们都由一个区段组成)有没有其他方法来实现这一点?你需要一些东西来区分不同的控制器。谢谢你提供的信息。我正在处理这个问题。谢谢你提供的信息。我正在处理这个问题。