1

我有兩個不同的MapRoutes在Route.config如下...如何從一個控制器的操作方法到另一個控制器的操作方法途徑,而不在MVC顯示控制器名稱5

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如下:在Index這是IndexController

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

操作方法,現在,當我點擊科目Index操作方法鏈接,就應該到主題行動主題控制器出來的URL顯示控制器名稱。

這怎麼辦?

+0

你不能 - 你的路線需要能夠加以區別(兩者已顯示的路徑是相同的 - 它們都由一個部分組成) –

+0

還有其他方法可以實現嗎? – chaitanya

+1

你需要有一些東西來區分不同的控制器。 –

回答

0
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" }) 

應該產生

/Subjects 

默認和更普遍的路線,現在將捕獲所有其他請求,並將它們路由到現任的IndexController作爲網站的根/索引。

例如假設

public class IndexController : Controller { 
    public ActionResult Index() {...} 
    public ActionResult ContactUs() {...} 
    public ActionResult About() {...} 
} 

的可用路由

基於上述控制器是

/ 
/Index 
/ContactUs 
/About 
+0

感謝您的信息。我正在爲此工作。 – chaitanya

相關問題