2013-07-01 82 views
-3

特定的路由模式,我有以下路線網址:生成在ASP MVC

routes.MapRoute(
    name: "JobsIndex", 
    url: "Jobs/{filter}", 
    defaults: new { controller = "Jobs", action = "Index", filter = "Recent" } 
); 

如何創建一個URL呢?喜歡的東西:

http://localhost/Jobs/Active

感謝

回答

1

@Andrei是先用這裏的正確答案。我只想指出,您還可以使用您通過Url.RouteUrl發送的路線名稱:

@Url.RouteUrl("JobsIndex", new { filter = "Active" }) 
+0

雖然你的答案晚些時候我更喜歡這個解決方案,所以我會給你最好的答案。 – elite5472

1

您可以使用Url.Action這將創建URL爲您服務。

var url = Url.Action("Jobs", "Index", new { filter = "Active" });

您也可以在試圖獲得View中的URL時非常有用JavaScript文件使用。你可以用Razor

@Url.Action("Jobs", "Index", new { filter = "Active" }); 
+0

這是不正確的。 OP希望傳遞「活動」過濾器。這並不是那樣做的。 –

+0

@ChrisPratt - 添加了'Active'過濾器。 –

4

做內部控制:

string url = Url.Action("Index", "Jobs", new {filter = "Active"}); 

在一個視圖:

@Url.Action("Index", "Jobs", new { filter = "Active" }) 
+0

我試過這個:'

  • Recent Jobs
  • ',結果是'http:// localhost/Jobs' – elite5472

    +0

    @ elite5472,很可能你有其他的路由在JobIndex之前註冊並因此影響它。你可以發佈整個路由註冊嗎? – Andrei

    +0

    好吧,現在我知道它爲什麼不起作用。 '/ Recent'是默認的...... Active工作得很好。 – elite5472