問題タブ [asp.net-routing]
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.
c# - ASP.NET MVC: Html.Actionlink() が空のリンクを生成する
さて、actionlink htmlhelper でいくつかの問題が発生しています。
次のような複雑なルーティングがあります。
私の問題は、これらのパターンに一致するアクション リンクを生成することです。eventname パラメーターは、ユーザー フレンドリーなリンクを表示するためのものです。それは何もしません。
たとえば、リンクを生成しようとしているとき。特定のグループのダッシュボードを表示します。お気に入り:
次のアクションリンクを使用します。
HTMLでの私の実際の結果は次のとおりです。
私が持っているべきものは次のようなものです:
私はまだ ASP MVC に慣れていないので、ご容赦ください。誰かが私が間違っていることを教えてもらえますか?
助けていただければ幸いです!
asp.net - ドメイン/ホストに基づいてasp.net URLルーティングを調整する方法は?
ドメイン/サブドメイン/ホストに基づいて、global.asax Application_Start イベントで作成されたルーティング テーブルのパスの宛先を調整する最良の方法は何ですか? 以下は IIS6 では機能しましたが、IIS7 では要求オブジェクトが Application_Start イベントから切り離されているため、機能しなくなりました。
.net - ASP.NETルーティングを使用してツリー構造のURLをルーティングする方法は?
この質問に非常によく似たものを、いくつかの機能強化を加えて実現したいと思います。
ASP.NETMVCWebアプリケーションがあります。
私は実体の木を持っています。
たとえば、Page
タイプがであるChildrenというプロパティを持つクラスIList<Page>
。Page
(クラスのインスタンスは、データベースの行に対応します。)
サイトの所有者はいつでも新しいページを追加したり、既存のページを削除したりできます。URLにはそれらの変更も反映されている必要があります。
データベース内のすべてに一意のURLを割り当てたいと思いPage
ます。と呼ばれるコントローラーでオブジェクト
を処理します。Page
PageController
URLの例:
あなたは絵を手に入れます。したがって、すべてのオブジェクトに、親のURLに独自の名前を加えたものに等しい独自のURLを持たせ
たいと思います。
それに加えて、シングルを(ルート)URLにマップする機能も必要です。Page
Page
/
これらのルールを適用したいと思います。
- URLを他のルートで処理できる場合、またはファイルシステムに指定されたURLでファイルが存在する場合は、デフォルトのURLマッピングを実行します。
- URLを仮想パスプロバイダーで処理できる場合は、それを処理させます
- 他にない場合は、他のURLを
PageController
クラスにマップします
私もこの質問、そしてこれとこれも見つけましたが、最初の2つのポイントについて説明していないので、あまり役に立ちませんでした。
私は次の可能な解決策を見ます:
- 各ページのルートを個別にマッピングします。
これには、アプリケーションの起動時にツリー全体を調べ、完全一致ルートをルートテーブルの最後に追加する必要があります。 - ルートを追加してそれを処理
{*path}
するカスタムIRouteHandler
を作成することはできますが、このハンドラーがすべてを処理するため、最初の2つのルールをどのように処理できるかわかりません。
これまでのところ、最初の解決策は最も単純であるため、正しい解決策のようです。PageController
しかし、それでも、その場合でも、リクエストを処理する方法がわかりません。
よろしくお願いします。
前もって感謝します!
編集:私は今、私が受け取ったすべての答えのすべての側面を調べる時間がありました。私はニールの答えを受け入れました。彼は物事がどのように機能するかについて最も良い説明を提供する人だからです。他のすべての回答も良いアイデアを提供するので、私は賛成しました。
asp.net-routing - GetRouteUrl は null を返し、RedirectToRoute は「RedirectToRoute に一致するルートが見つかりません」をスローします。
null を返します
InvalidOperationException("RedirectToRoute に一致するルートが見つかりません。") をスローします。
ブレークポイントを置いてチェックSystem.Web.Routing.RouteTable.Routes
したところ、ルートがそこにありました。ページコードで問題なく使用できます。どうしたんだ?
asp.net - データバインドされたパラメーターを使用して RouteUrls を宣言的に作成する方法は?
ASP.NET 4 (MVC ではなく Web フォーム) の新しいルーティング機能を使用しています。これで、データソースにバインドされた asp:ListView ができました。プロパティの 1 つはClientID
、ListView アイテムから別のページにリンクするために使用したいです。でglobal.asax
ルートを定義しました:
たとえばhttp://server/MyClientPage/2
、ClientID=2 が存在する場合は有効な URL です。
ListView 項目には、リンクを作成できるように asp:HyperLink があります。
これは機能しますが、RouteUrl 式を使用して、ハードコーディングされたルートの代わりに RouteName を使用することをお勧めします。たとえば、定数 ClientID=2 を使用すると、次のように書くことができます。
今、ルート式の構文とデータバインディングの構文を組み合わせることができるかどうか疑問に思っています。2
基本的に、上記の定数を に置き換えるのが好き<%# Eval("ClientID") %>
です。しかし、これを素朴な方法で行う...
... は機能しません:<%# Eval("ClientID") %>
は評価されませんが、文字列と見なされます。いくつかのフレーバーの引用符をいじっても、これまでのところ役に立ちませんでした (ほとんどの場合、パーサー エラー)。
質問: 私がここで達成しようとしていることはまったく可能ですか? はいの場合、正しい方法は何ですか?
前もって感謝します!
asp.net - セキュリティ トリミングは Web フォーム ルーティングと連携しますか?
私の web.config で SiteMapProvider を構成しsecurityTrimmingEnabled="true"
、メイン マスター ページには. さらに、サブフォルダー「Admin」内のすべてのページへの制限付きアクセスを構成しました (このサブフォルダー内の別の web.config を使用)。asp:Menu
asp:SiteMapDataSource
sitemapNode を入れるとWeb.sitemap
...
...ロール「管理者」のユーザーのみが、そのsiteMapNodeに関連するメニュー項目を持ちます。したがって、これは意図したとおりに正常に機能しています。
これで、物理ファイルを新しい URL にマップするために、Global.asax で URL ルートを定義しました。
しかし、SiteMap ファイルでこのルート URL を使用すると...
... セキュリティ トリミングが機能していないようです: メニュー項目はすべてのユーザーに表示されます。(ただし、ページへのアクセスは引き続き制限されているため、管理者以外のユーザーがメニュー項目を選択しても、制限されたページには移動しません。)
質問: ASP.NET 4.0 Web フォームの URL ルーティングでセキュリティ トリミングを機能させるために、これまで見逃していた設定はありますか? 私は何か間違ったことをしましたか?回避策はありますか?
ご協力ありがとう御座います!
asp.net-mvc-2 - ASP.NET MVC ルートの既定値
以下のようにglobal.asaxで2つのルートを定義しました
上記の定義によると、ユーザーが mysite.com/homeController のリダイレクト アクションを要求したときに、次のように呼び出す必要があります。
上記の2番目に定義されたルートにユーザーをリダイレクトしたいので、そのデフォルト値とそれぞれの制約を指定しました。しかし、RedirectToRoute("UrlResolver")
順番が変わると、2 番目のルートで routeConstraints にデフォルト値が渡されず、表示されNo route in the route table matches the supplied values
ます。
アップデート
私のCultureRouteConstraint:
現在、値パラメーターにはカルチャ キー/値がありませんが、ルート パラメーターにはそれがあります。
asp.net-mvc-2 - ASP.NET MVC2 でアンダースコアを使用して小文字の URL ('questions/add_to_favorites/123') をルーティングする方法は?
ASP.NET MVC 2 コントローラーとアクションは、UpperCamelCase を使用します。
何らかの理由で、SO を含む多くの大きなサイトでは、URL のコントローラーとアクションに小文字 (アンダースコア付き) を使用しています。例:
これがどのように達成されるか知りたいです。
デフォルトのルーターは大文字と小文字を区別しないようです。stackoverflow.com/questions/ask
問題なく Questions-controller の Ask() メソッドに送られます。
questions/add_to_favorites
ただし、 Questions-controller の AddToFavorites() アクションに向けたいとします。
- これはどのように達成されますか?
- HTML ポイント内のリンクを の代わり
Html.ActionLink("add_to_favorites")
に の代わりに使用する必要がありますか?Html.ActionLink("AddToFavorites")
questions/add_to_favorites
Questions/AddToFavorites
編集:同様の投稿
アンダースコアをサポートする 1 つの方法は、ActionName 属性を使用することです。
ただし、これはコントローラーでは機能しません。おそらく、ルーティング メカニズムに到達する前に、リクエストからアンダースコアをすべて削除できれば、うまくいくでしょう。
iis-7 - 異なるIPをIIS7の異なるページに転送する
IIS7を使用して、外部IPアドレスを「メンテナンス中のサイト」ページに送信するときに、内部プライベートネットワークIPのアドレスを自分のWebサイトに送信するにはどうすればよいですか。
これまでのIIS7で、IISに「IPv4アドレスとドメインの制限」という名前のセクションがあり、それに3つの内部範囲を許可範囲として追加できます。簡単そうです。次に、他のすべてのトラフィックを、作成したapp_offline.htmlなどの静的ページに転送するにはどうすればよいですか。(実際にはapp_offline.htmlを使用しません。これにより、内部アドレスに対してもアプリが明らかにオフラインになるためです。)
asp.net - ASP.NET4Webフォームルーティングイメージ
ASP.NET 4 Webフォームルーティングを使用しています。たとえば、次のようになります。
したがって、webadressは次のようになります。http://localhost/mywebsite/eng/home
私のウェブサイトのルートには、「画像」フォルダがあります。
画像表示は、ウェブサイトのルートにいるときに機能します。http://localhost/mywebsite/default.aspx
ただし、ルーティングを使用する場合は機能しません。これは、画像の相対URLがhttp://localhost/mywebsite/eng/images
代わりに表示されるためです。http://localhost/mywebsite/images
ASP.NET 4ルーティングメカニズムを使用してこれを防ぐ方法はありますか?または、画像に絶対URLを使用する唯一の方法ですか?