問題タブ [route-constraint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
thread-safety - カスタム ルートの制約により断続的な 404 エラーが発生する
カスタム ルート制約を使用してAsp.Net Core 1 RC1
アプリケーションへのアクセスを制御するアプリケーションがあります。アプリケーション ( を実行しているサーバーでホストされているIIS 7.5
) が断続的な 404 エラーを受け取ります。これは、このルーティングの制約が原因であると思われます。ここでは、断続的な 404 エラーを示すスクリーンショットを確認できます。
この問題は、スレッドセーフではないルート制約を定義するコードに関連していると思われます。DbContext
アプリケーションがルートで指定されたブランドに対して有効になっているかどうかをデータベースでチェックインする必要があるため、カスタム ルートの制約には が必要です。このDbContext
インスタンスが問題を引き起こしている可能性があると思われます。アプリケーションでルーティングを定義する方法は次のとおりです。
カスタム ルート制約は次のとおりです。
この問題がコードがスレッドセーフでないことが原因であることを確認し、スレッドセーフになるように実装を変更する方法を推奨できる人はいますか?
asp.net-mvc - ASP.NET MVC - RouteConstraint を使用してデフォルト ルートのパラメーターを渡す
デフォルトの asp.net mvc ルートが 2 つあるという問題に直面しています (カスタム制約によって適用されます)。私がやろうとしているのは、パラメーターが routedictionary で提供されているかどうかに基づいて、さまざまなビューをロードすることです。以下は私の2つのルートですRouteConfig.cs
タイトル文字列が指定されている場合に開く/watch/Index/{title}
か、デフォルトのルートを開くだけです/Main/Index
。以下は、ルート制約の実装です。
のVideoTypeRouteConstraint.cs
私がやろうとしているRouteValueDictionary
のは、タイトル変数が含まれているかどうかを確認し、含まれている場合は true を返すので、/Watch/Index/{title}
実行されます。
以下のURLにアクセスすると機能するようになりました
RouteValueDictionary
キー (タイトル) が含まれていますが、その値は常に null です。これが問題だと私が信じているところですが、私はそれを特定できません。
これの全体的なアイデアはSEO
、別のコントローラーを使用したときにはるかに長い URL をきれいにすることでした。
asp.net-web-api2 - Web API 2 は、クエリ文字列パラメーターのルート制約をサポートしていますか?
Web API 2 では、ルート テンプレートに制約を設定できます。例えば:
上記の例のように、クエリ文字列パラメーターを同様の方法で制約する方法はありますformat
か?
(おそらく、パラメーターのカスタム値の型を宣言してから、無効な値で失敗format
する を定義できることはわかっていますが、最初に Web API 2 のルート制約メカニズムをクエリ文字列パラメーターにも使用できるかどうかを確認したいと思います[TypeConverter]
.)
c# - RouteConstraint での RouteValueDictionary の操作
ルートがあるとしましょう。www.kunduz.com/stuff/something
「何か」がルート制約に対してチェックされている場所。
そして、ものがこのような構造を持っているとしましょう
オブジェクト Stuff は単なる DB のエントリではなく、型に似ていると考えてください。たとえば、これが e コマース サイトである場合、「車」または「家具」である可能性があります。
だから私がやっていることは、ルート制約で「何か」が本当に有効な「スタッフ」であるかどうかを確認していることです。次に、コントローラーで;
さて、私にもできることはこれ
コントローラーアクションのパラメーターとして追加したIDを取得します
これによりパフォーマンスが向上すると思われます。
私の質問は何ですか、これは良い習慣ですか?私の URL には sutffId が含まれていないため、コントローラーのアクションは、このコードを見る将来の開発者にとって混乱を招く可能性があります。
この問題についての洞察をいただければ幸いです。
ありがとうございました。