這樣的問題已經在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