1

私は MVC 内で作業しており、ブログの URL を変更する必要があり/about/blogます/blog

これを解決しようと、コントローラーやその他のさまざまな .vb ファイルを調べているところ、URL ルーティング システムにたどり着きました。

次の違いは何ですか(今のところ命名は無視してください)

    ' Route 1
    routes.MapRoute( _
        "legal", _
        "{action}",
        New With {.controller = "home", .action = "index"},
        New With {.action = "^(terms|privacy|cookies|responsiblegaming|disclaimer|legal|acceptableuse)$"},
        New String() {"ProjectMVC"}
    )

    ' Route 2
    routes.MapRoute( _
        "legal", _
        "{action}",
        New With {.controller = "home", .action = "index"},
        New With {.action = "^[a-zA-Z_]+$", .slug = "^[a-zA-Z][a-zA-Z0-9_\-\|]*$"},
        New String() {"ProjectMVC"}
    )

私が最も混乱しているのは、それが何を探して何をしているのかを知ることだと思います。つまり、これは何を意味"^[a-zA-Z_]+$"し、これ は何を意味するのか"^[a-zA-Z][a-zA-Z0-9_\-\|]*$"

4

1 に答える 1

4

あなたが見ているのはルート制約です。基本的に、制約 (あなたの場合、これらは正規表現の制約) を使用して、これらのルートを呼び出すことができる条件をルーティング システムに伝えます。

最初の RegEx 値は、^[a-zA-Z_]+$「アクションは、括弧内に定義された任意の文字で開始および終了できます。これらは、小文字の aからz、大文字の AからZ、およびアンダースコア文字でのみ使用できます。1 回以上繰り返される」ことを意味します。

より技術的に正確に言うと、「指定されたクラス [a-zA-Z_] で 1 回以上定義された任意の文字」。

もう 1 つの値は^[a-zA-Z][a-zA-Z0-9_\-\|]*$、「スラッグは文字aからzまたは大文字の AからZで開始および終了する必要があり、その後はaからzまたはAからZの範囲内の 0 個以上の文字、または 0 の間の数字を含むことができる」という意味です。および 9、またはアンダースコア、ダッシュ、またはパイプ".

そしてそれはそれについてです。正規表現についてもっと学びたいと思うかもしれません。このサイトをチェック 正規表現

于 2013-06-06T11:55:31.000 に答える