6

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 がまだあります...これはかなり奇妙です。

  • 詐欺師の方法もあります-特定のコントローラーとそのパラメーター名を一致させる正確なルートを作成する-それが究極の答えになるようです-しかし、私はまだこれをやりたくありません((
4

1 に答える 1