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