【发布时间】:2014-04-18 03:10:22
【问题描述】:
我有控制器:
[RoutePrefix("")]
带有路由的动作:
[Route("things-to-do/{filter1?}/{filter2?}/{filter3?}/{filter4?}/{Area?}", Name = "thingstodo")] public async virtual Task<ActionResult> ThingsToDo(string filter1 = "", string filter2 = "", string filter3 = "", string filter4 = "", string q = "")
如果我在浏览器中输入这些网址,这将起作用:
本地主机/待办事项
本地主机/待办事项/某事
本地主机/待办事项/某事/某事
但是这些都返回null:
Url.RouteUrl("thingstodo")
Url.Action("ThingsToDo", "ControllerName")
Url.Action(MVC.ControllerName.ThingsToDo())
这些返回正确的网址:
Url.Action("ThingsToDo", "ControllerName", new { filter1 = "something", filter2 = "something" })
Url.Action(MVC.ControllerName.ThingsToDo("something", "something"))
在我不需要可选参数时如何正确生成 url 的任何帮助将不胜感激。
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-5 t4mvc attributerouting asp.net-mvc-5.1