0

URLにユーザーのフルネームを使用して、MVC4 Webサイトに次のURLを設定したい:

http://www.myapp.com/profile/steve-jones

Global.asax で次のルートをセットアップしました。

    routeCollection.MapRoute(
      "profile", "profile/{userName}", 
       new { controller = "myController", action = "profile", userName = string.Empty 
    });

そして、パラメーターを取得して、'steve-jones'名前が一致するユーザーに一致させることができます。私の唯一の問題は、複数の がある場合、どうすれば'Steve Jones'これを処理できますか?

URLの一部としてユーザーのフルネームを使用し、コントローラーメソッドで正しいユーザーを取得できるように、これに対する回避策/解決策を知っている人はいますか?

URL にユーザーの ID を含める必要がありますか (表示したくないもの)?

4

1 に答える 1

2

これを処理する通常の方法は、プロファイルを作成するときに番号を追加することです。したがって、「steve-jones」がすでにデータベース内の名前である場合は、ユーザーの表示名を「steve-jones2」にします。基本的に、既存のデータベースとアカウント作成コードの更新を含め、すべてのプロファイルURLが一意であることを主張する必要があります。

あるいは(および/またはさらに)、2つの同じ名前が見つかった場合は、スクリプトを曖昧性解消ページに再ルーティングして、ユーザーに多くの既存のSteve Jonesesesのプロファイル情報のリンクとスニペットを表示して、完全に正しいプロファイルに移動できるようにします。 。

これを処理する別の方法は、すべてのユーザープロファイルに最後に追加の数値コードを与えることです。私の大学では、すべてのログインは名前に基づいているため、まったく同じ名前の1000人がいない限り安全であるように、すべての人に疑似ランダムな3桁の拡張子が付けられます:)

心配している場合は、steve-jonesまたはsteve-jones1がない場合は、steve-jones-342である方が幸せな場合があります。

于 2013-03-21T16:48:25.737 に答える