这样的问题已经在SO(post 1,post 2,post 3)之前被询问过,但他们都没有能够帮助我。ASP.NET MVC 5属性路由:当使用多个参数时,Url.Action返回空值
我有以下途径(一LandingController
类中定义):
[HttpGet]
[Route("connections/{city:name}/map{page?}", Order = 2)]
public Task<ActionResult> Connections(string city, int page = 1)
为此我试图生成我的剃刀模板像这样的URL:
@Url.Action("Connections", "Landing", new { city = "madrid", page = 1 })
或
@Url.Action("Connections", new { city = "madrid", page = 1 })
这两个调用返回null
。任何人有一个想法为什么?
但是,如果我省略了路由模板(做[Route("connections/{city:name}/map", Order = 2)]
)中的页面参数,则会生成以下URL:/connections/madrid/map/?page=1
,这不是我想要的,但它表明我在上述呼叫中做错了事。
可以还表示行进路线是如何定义的在你的路由配置? –
我的路由是使用属性路由定义的,即在action方法之上(我在问题中发布的),所以它不在路由配置中。 –
您可以尝试'[路线(“连接/ {城市:名称} /地图/ {页面?}]'? – juunas