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 を構築する方法をどこで設定しますか? 私はまったくアイデアがありません...((
OK、道筋が見えてきました: - プロパティ名がルーティング スキーマで使用されているものと同じ場合 (コントローラー、アクション、ID など)、MVC は常にルート ビルダー (/c/a/id) を使用します。
それは少し役立ちます(したがって、パラメータにできるだけ「id」という名前を付けてください))
しかし、全体的な問題はまだ有効です...
ルート内のトークンと同じ名前にする必要があります
まさに - 私は最初にその考えを持っていました。
しかし、今はデフォルト ルート ({controller}/{action}/{id}) しかありませんが、スラッシュで囲まれた「プロパティ」を含む URL がまだあります...これはかなり奇妙です。
- 詐欺師の方法もあります-特定のコントローラーとそのパラメーター名を一致させる正確なルートを作成する-それが究極の答えになるようです-しかし、私はまだこれをやりたくありません((