4

この DTO

[Route("/{Module}/{Name}")]
public class ViewEntityList {
    public string Module { get; set; }
    public string Name { get; set; }
}

起動時にアプリにエラーが発生する

タイプ 'ViewEntityList' の RestPath '/{Module}/{Name}' は有効ではありません

ルートをリテラル (例: /Entity/{Module}/{Name}) で開始するように変更できますが、それは私が望むものではありません。その上、私の URL は過度に長く、REST らしくないように見え始めています。

変数でルートを開始することは可能ですか? そうでない場合、2 つの部分を持つルートを特定の DTO にマップする別の方法はありますか?

4

1 に答える 1

0

私は常に次のことを行います:

        //Configure User Defined REST Paths
        Routes
            .Add<DTO1>("/service/function/{argument}")
            .Add<DTO2>("/service/commonsegment/{Function*}")

DT1 のマッピングは「基本」マッピングであり、1 つの URL が DTO に対応します。

DTO2 では、URL の最初の「非共通」セグメントの名前を与える「Function」というキーが必要です。URL に事前設定された他のセグメントは、可能であれば DTO2 にマップされます (一致するプロパティ)。このようにして、Web サーバー自体を変更せずに、バッキング実装 (外部 dll に配置できる/配置する必要があります) のみを変更することなく、新しい関数/引数を受け入れることができます。

これが役立つことを願っています。

于 2012-12-04T12:14:28.910 に答える