2012-02-16 9 views
1

私は自分のURL名を選ぶユーザーのためのカスタマールートを実行したいと思っています。ASP.NET MVCでルートが使用されていることを確認してください

http://example.com/customer-name

は私が名前彼らの入力はすでに我々のルートに登録されていないことを確認することができますか?誰かが「about」と入力した場合、「http://example.com/about」のように、「About」ページがあるため、名前がすでに使用中であることを伝えることができます。

答えて

0

ユーザー定義のルートには貪欲なルートを使用する必要があります。ルートの登録は次のようになります。

routes.MapRoute("customCustomerRoute", 
       "{*customerName}", 
       new { controller = "Customer", action = "Home" } 
     ); 

、それは他のルートを食べて取得しないように、あなたのルートの最後に行く必要があります。

これで、顧客名のパスをdbに保存し、新しいパスを作成する前にそのパスをルックアップできます。次のコードで可能なすべての既存のルート得ることができます

:次に

var routes = new RouteCollection(); 
MvcApplication.RegisterRoutes(routes); 

をそれらのルートが登録されるURLが含まれている場合、あなたは見ることができました。

+0

しかし、ルート "/ about"が使用されていないことを確認したい場合、それはDBには存在しません。それはGlobal.asaxにあります。 –

+0

あなたは何を求めているのですか?私のことを見てください。それは役に立ちますか? –

+0

それだけでルートを登録しますか? –

0

私はすべての顧客ルートを「フォルダ」に配置します。 http://example.com/account/customer-name。そこに矛盾はありません。

他のすべての「ハードコードされた」コントローラを領域に配置し、クライアントで使用することを禁止します。

関連する問題