1

ASP.NETMVCアプリケーションにマップしたい2つのルートがあります

  1. /ユーザー/ログイン
  2. / User / {userid} / {username} / {action}(例:/ User / 1 / blah / profile)

これが私が定義したルートです:

    routes.MapRoute(
        "Profile",
        "Users/{userID}/{username}/{action}",
        new { controller = "Users", action = "Profile" }
    );

    routes.MapRoute(
        "Default",
        "{controller}/{action}/{id}",
        new { controller = "Home", action = "Index", id = "" }
    );

これは、ほとんどの場合、これまでのところうまく機能しています。次のURLは私のホームページから機能します。

<%= Html.ActionLink((UsersController x) => x.Login(), "Login") %>
<%= Html.ActionLink((UsersController x) => x.Profile(1, "blah") %>

これらは(敬意を表して)次のようにマップされます。

/ Users / Login / Users / 1 / blah

ただし、/ Users / 1 / blahに移動すると、ログインURLはすぐに/ Users / 1 / blah/loginに変わります。これを修正する方法はありますか?

4

2 に答える 2

1

使いたい<%=Html.RouteLink%>

これは私が抱えていた問題と非常によく似ています ここで見ることができます

于 2008-12-17T16:06:07.320 に答える
0

ルートが Authorize フィルターにヒットしていますか? /Users/1/blah ページを表示するためにログインする必要はありますか? (つまり、UsersController クラスまたはプロファイル アクションに [Authorize] 属性がありますか?)

それでは、Authorize フィルターでない場合は、このルーティング デバッガー ツールをプロジェクトに実装することを強くお勧めします。

于 2008-12-16T21:17:56.940 に答える