この種類の質問はSO(、post 2、post 3)で先に質問されていますが、ASP.NET MVC 5属性ルーティング:複数のパラメータを使用するとUrl.Actionがnullを返します
私は、以下の経路(LandingController
クラス内で定義された)を持っている:
@Url.Action("Connections", "Landing", new { city = "madrid", page = 1 })
または
:私はこのような私のカミソリテンプレートでURLを生成しようとしていたため[HttpGet]
[Route("connections/{city:name}/map{page?}", Order = 2)]
public Task<ActionResult> Connections(string city, int page = 1)
@Url.Action("Connections", new { city = "madrid", page = 1 })
これらの呼び出しは両方とも、null
を返します。誰でも理由が分かりますか?
ただし、ルートテンプレートのページパラメータを省略した場合([Route("connections/{city:name}/map", Order = 2)]
)、次のURLが生成されます。/connections/madrid/map/?page=1
これは私が望むものではありませんが、上記の呼び出しで何か問題があることを示しています。
、あなたはまた、ルートが定義されている方法を表示することができますあなたのrouteconfigで? –
私のルートは、属性ルーティング、つまり(私が質問に投稿した)アクションメソッドより上で定義されているため、routeconfigにはありません。 –
'[Route(" connections/{city:name}/map/{page?} "'? – juunas