2012-03-01 21 views
2

私はここで悪いことをしています。私は最初に試してみることなく、誰かがこれをやる簡単な方法を知っていることを尋ねて、質問しています。ASP.NET MVC 3大文字と小文字を区別するURL

私たちはASP.NET MVCルーティングシステムの大文字と小文字を区別することができますか?私は異なるように、次の2つのURLをしたいと思います:

example.com/a

example.com/A

は、我々は簡単に修正を持っていますかのために私たち自身のハンドラを記述する必要がありますこの。

+1

私はあなたがなぜこれを行う必要があるのか​​を理解するのが好きです。これにはどのような理由がありますか? –

+3

コントローラー、アクション、またはその他のオプションのパラメーターを大文字と小文字に区別することを検討していますか?すべてはRoute Constraintsを使用して行うことができます。大文字と小文字を区別する必要があるコントローラ/アクションの場合は、単一のルート制約を使用できますが、オプションの値を大文字と小文字を区別したい場合は、検証するルートごとに異なるルート制約が適用されます。一方、あなたがハードコーディングのルートであれば、/ Aはホームコントローラのインデックスアクションに、/ Aはホームコントローラにマップします。アクションについては、RegExルートコンストレイントを使用することもできます。 –

+0

私の目的は、URL短縮サービスのために恋人と大文字のランダムな文字列を生成できるようにすることです。 – tugberk

答えて

5

私はそれを試したことはありませんが、大文字と小文字の区別がついた正規表現のルート制約を使用すると動作すると思います。私はそれが良い考えだとは思わない。

3

これは悪い考えです。あなたは、人々は常にリンクをクリックして、手でURLに触れることはないと仮定しています。

デフォルトでは、MSSQLは大文字と小文字を区別しません。ルート値の一部がデータベースにバインドされていると仮定します。

私はまた、検索エンジンのすべてのURLが小文字(Edumacatedの推測)であることを喜んで賭けています。すべてのGoogle検索のURLを支払っ

EDIT

は小文字です。

あなたはまだこれを行うことを主張した場合:

ます。また、大文字と小文字が区別基づいて意見を探しカスタムviewengineを実装持っている必要があります。また、大文字と小文字を区別するコントローラを見つけるカスタムコントローラファクトリ。

+0

大文字と小文字を区別するコントローラ/アクションは、IRouteConstraintとリフレクションまたはカスタムコントローラファクトリを使用して行うことができます.OPがActionLinkを使用している場合やUrl.Actionを呼び出している場合でもRouteConstraintはより良いオプションです。 –

+0

検索エンジンは、URLの大文字と小文字を変更しない方が良いでしょう。 [RFC 3986 6.2.2.1](http://tools.ietf.org/html/rfc3986#section-6.2.2.1)と[RFC 2616 3.2.3](http://tools.ietf.org/html/)を参照してください。 rfc2616#section-3.2。3) – derkyjadex

+0

ドメイン名のみ大文字小文字を区別しません。 URIパスは大文字と小文字を区別します。 – Monstieur

3

はまた、大文字と小文字の区別のような正規表現のオプションは、のようなもので半ば正規表現を変更することができることに注意してください。

...(?-i:nonCaseSensitiveBit)backToCaseInsensitive... 

完全な読み出しのための正規表現のドキュメントを参照してください。

関連する問題