0

私はいくつかのプロジェクト管理システムを持っています。プロジェクトを開きたい場合はid=123、アドレスを使用してコントローラー アクションにリダイレクトします。

http://myhost:67845/Projects/id=123

次のような同じアクションにユーザーフレンドリーなリンクを使用するにはどうすればよいですか:

http://myhost:67845/Projects/John-can-develop-asp-net-site-for-you
4

2 に答える 2

1

デフォルトのルーティングを使用するhttp://myhost:67845/Projects/123ことで、123 が id として扱われるため、そのまま使用できます。

ただし、そのようなわかりやすい名前が必要な場合は、コントローラーを変更する必要があります。

2 番目のケースでは、Projects コントローラ (デフォルト ルーティング用) で、これは Index というメソッドによって処理されます。このメソッドにはプロパティが必要string idです。

次に、メソッド内で と 123 の間で変換する方法が必要ですJohn-can-develop-asp-net-site-for-you。これは、John-can-develop-asp-net-site-for-you がプロジェクト 123 の名前であるか、わかりやすいものを保存する必要があるかのいずれかです。データベース内の名前も変換してください。

于 2011-12-19T09:21:35.103 に答える
1

デフォルトルートを更新できます:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

次に、タイトルを引数として受け取るコントローラーアクションを用意します

public ActionResult Index(string title)
{
    ...
}
于 2011-12-19T09:20:33.003 に答える