我在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路径... 这相当奇怪。
- 还有一个欺骗方法 - 创建一个精确匹配给定控制器及其参数名称的路由 - 看起来这将是最终答案 - 但我仍然不想这样做 ((