C# 在ASP MVC中为特定路由模式生成URL

C# 在ASP MVC中为特定路由模式生成URL,c#,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net Mvc,Asp.net Mvc 4,Razor,我有以下路线: routes.MapRoute( name: "JobsIndex", url: "Jobs/{filter}", defaults: new { controller = "Jobs", action = "Index", filter = "Recent" } ); 如何创建指向它的url?比如: http://localhost/Jobs/Active 谢谢您可以使用它为您创建URL var url=url.Action(“作业”,“索引”,新的{

我有以下路线:

routes.MapRoute(
    name: "JobsIndex",
    url: "Jobs/{filter}",
    defaults: new { controller = "Jobs", action = "Index", filter = "Recent" }
);
如何创建指向它的url?比如:

http://localhost/Jobs/Active

谢谢

您可以使用它为您创建URL

var url=url.Action(“作业”,“索引”,新的{filter=“Active”})

您还可以在JavaScript文件中使用它,这在尝试获取视图中的URL时非常有用。您可以使用
Razor

@Url.Action("Jobs", "Index", new { filter = "Active" });
内部控制器:

string url = Url.Action("Index", "Jobs", new {filter = "Active"});
在一种观点上:

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

@安德烈是第一个给出正确答案的人。我只是想指出,您也可以使用您通过
Url.RouteUrl
提供的路由名称:

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

这是不正确的。OP希望“活动”过滤器通过。这不起作用。@ChrisPratt-在中添加了
活动的
过滤器。我尝试了这个:
  • ,结果是
    http://localhost/Jobs
    @elite5472,很可能您有其他在JobIndex之前注册的路由,因此正在跟踪它。你能把整个路线登记都贴出来吗?好吧,现在我知道为什么它不起作用了/“最近”是默认值。。。积极的工作很好。这个答案是正确的。虽然我认为Chris的解决方案最好,因为我更喜欢他的解决方案。虽然你的答案来得晚,但我更喜欢这个解决方案,所以我会给你最好的答案。