我在 MVC 控制器中创建了大量的操作。
public ActionResult DoSmth1(string token)
public ActionResult DoAnother2(string token)
当我必须调用 ActionLink 时..
=Html.ActionLink<SomeController>( x=> x.DoSmth(item.property), item.property)
=Html.ActionLink<AnotherController>( x=> x.DoAnother(item.property), item.property)
...它为我生成了不同的 URL:
/Some/DoSmth/stringvalue
/Another/DoAnother?property=stringvalue
在哪里设置它构建 URL 的方式?我完全没有想法......((
好的,有一些方法: - 如果属性名称与路由模式中使用的相同 - 例如控制器、操作和 id - MVC 将始终使用路由构建器 (/c/a/id)。
这有点帮助(所以 -尽可能将参数命名为“id”))
但总体问题仍然有效......
必须与路由中的令牌命名相同
正是——我第一次有这个想法。
但是 - 现在我只有默认路由({controller}/{action}/{id}),但仍然有带有“属性”的 URL 斜杠......这很奇怪。
- 还有一种欺骗方式——创建一个精确的路由来匹配给定的控制器及其参数名称——似乎这将是最终的答案——但我仍然不想这样做((