問題タブ [routedata]
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.
asp.net-mvc - Asp.Net MVC ベータ: 以前の RouteData は現在の RouteData をオーバーライドしますか?
次の方法に似たものがあります。
および次のルート:
プレビュー 3 を使用していたベータ版の前は、すべて正常に機能していました。これで、アクションを初めて実行したときに、メソッドが ID を正しく入力するようになりました。ただし、2 回目はコントローラModelState
に last-use id 値が含まれています。これにより、値ActionInvoker
の代わりにメソッドのパラメーターでそれが使用されRoute
ます。
したがって、2 つの異なるエンティティに対してアクションを 2 回呼び出すと、結果は次のようになります。
Reflector を使用したクイック スキャンから、最初にパラメーターを ModelState にバインドしてから、Routes にバインドしているようです。ただし、モデルから何も投稿したことはありません。私が知る限り、ModelState には何も含めるべきではありません。
これはベータ版のバグですか、おそらく私のコードのどこかにバグがあるのでしょうか、それとも私が知らない設計上の機能がありますか? ModelState の性質と、これが発生する理由についての洞察をいただければ幸いです。
編集: この問題は、実際には、Asp.Net アプリケーションの存続期間中に存在する IoC コンテナーからコントローラーをインスタンス化する場合、DefaultValueProvider のバグと思われるものの症状であることがわかりました。何が起こるかというと、DefaultValueProvider は最初に ControllerContext が Controller に与えられ、Controller が再作成されるまで更新されません。これにより、現在の RouteData ではなく、古い RouteData がメソッド パラメーターに使用されます。
asp.net-mvc - .net MVCのビューから現在のRouteDataにどのようにアクセスしますか?
の一部としてコントローラーから渡すのではなく、RouteData
から(現在のアクションまたはパラメーター値など)に直接アクセスしたい場合、どのクラスを使用しますか?View
ViewData
asp.net-mvc - ASP.NET MVC リストを RouteData QueryString に渡す
値のリストを QueryString として渡すための推奨される方法は次のとおりです。
ASP.NET はこれを適切に処理します。
しかし、これらの値を RouteData に渡す方法がわかりません。明らかなアプローチは、追加することです
RouteData に挿入し、非常にスマートな MVC に整理してもらいます。残念ながら、配列を RouteData に渡す場合、MVC はダンプされます。基本的には、QueryString に value=int[] を追加する .ToString() を呼び出します。
RouteValueDictionary に値を追加しようとしました (ただし、辞書ではこれを処理できません:)
次のような値を渡すことができます。
しかし、これは次のように URL にエンコードされます。
これが悪いことかどうかはわかりませんが、見た目が悪いことは確かです。
では、値のリストを ASP.NET MVC で RouteData として渡すにはどうすればよいでしょうか。int[] を処理するために MVC に追加できる方法はありますか? それとも、基礎となるディクショナリ ベースのデータ構造は、値のリストを ASP.NET MVC に簡単に渡すためのショーストッパーですか?
c# - RouteData への ASP.NET MVC POST パラメーター
jQuery を使用して Id をルートに POST します。たとえば、
http://localhost:1234/Load/Delete
with a POST Parameter Id = 1です。
現在、Global.asax.cs の既定のルートのみを使用しています。
POST を実行すると、ActionFilterfilterContext.RouteData.Values["Id"]
のデフォルト値が に設定されます""
。理想的には、URL に""
. "1"
inの値が見えるので、きちんと投稿されていることが分かりますfilterContext.HttpContext.Request.Params["Id"]
。
RouteData を取得して POST パラメータをフォールバック値として使用する方法はありますか?
asp.net-mvc - RouteData DataToken がありません
エラー ID を与えるルート データ値を追加して、Application.OnError からコントローラー アクションにエラー ID を送信することで、ASP.NET MVC でエラーを処理しています。
Global.asax.cs/OnError:
そして、コントローラー/アクションでそれを読み取ります:
私のローカル マシンでは正常に動作しますが、サーバーでは errorKey が渡されませんでした。
これにはどのような理由が考えられますか?
サイトがWebサーバーを実行している場合の新しい観察:
- Webサーバー自体のブラウザからアクセスすると、ルートデータが正常に転送されます
- 別のマシンからアクセスすると、ルート データが転送されません
asp.net-mvc - コントローラコンストラクタでURLからパラメータを取得する
プロジェクトのデータベースでIDを見つけるためのコードを書く必要があります。ユーザーはプロジェクトに結合されており、すべてのプロジェクトはセッションなどの他のオブジェクトに多くの接続を持っています。
ここで、アクションを実行する前に、セッションにアクセスしようとしているユーザーが、セッションが接続されているのと同じプロジェクトに接続されているかどうかを確認する必要があります。
このために、アクションで[属性]を使用したいと思います。 MVC:パラメーターを受け取るカスタム[AuthorizeAttribute]を作成しますか?
この質問と回答で始めましたが、コントローラーのコンストラクターを使用して取得するのに問題がありますProject ID
目標は、プロジェクトに応じてオブジェクトのすべてのコントローラーの各コンストラクターにコードを記述し、プロジェクトIDを見つけてアクセス可能(パブリック)に[customauthorize]
することです。これにより、このプロジェクトIDにアクセスして、ユーザーがアクセスできるかどうか。
私の問題:
ルートデータにアクセスするにはどうすればよいですか?RouteData
null、null、HttpContext
nullRequest
です。
routedataにあるURLにIDが必要です...
asp.net - .Net 4.0 で Web サービスから RouteData 値を取得する方法
レコードの ID 番号に基づいてデータベースからデータを生成する select ステートメントの where 句のパラメーターとして使用できるように、Web サービスを使用して URL から ID 番号を抽出しようとしています。そのデータはページに戻され、jQuery モーダル ポップアップ ウィンドウの要素に入力されます。
すべてが静的 ID 番号 (例: string postid = "120"
) で正常に動作しますが、URL から ID 番号を取得する方法がわかりません。Routing in .Net 4 を使用していますが、Routing in pages にアクセスする方法が Web サービスでは機能しません。ページでは、次のようなvar id = RouteData.Values["id"];
ことをしてIDを取得しますが、Webサービスでそれを行うとエラーが発生しました:
CS0120: 非静的フィールド、メソッド、またはプロパティにはオブジェクト参照が必要です
'System.Web.Routing.RouteData.Values.get'
概要:
RouteData
リクエストを行っているページを取得したい詳細ページからWebサービスにアクセスしました。私はこれをページ上でできる限り簡単に行いたいと思っていRouteData.Values
ますRequest.Querystring
.
Web サービスの新しいルートを簡単に追加できますが、webservice.asmx/webmethod 構文のために jQuery Ajax を使用してそれを呼び出すかどうかわからないため、さらに混乱しています。
現在、jQuery Ajax に "../webservices/googlemaps.asmx/GetGoogleMap" という URL がありますが、これは実際の URL ではありません。それはjQueryのどこかにしか存在せず、JavaScriptだけを使用してサービスを呼び出す方法も実際のURLではありませwebservice.webmethod()
ん。この場合はgooglemaps.GetGoogleMap()
.
のルートを登録してみますがwebservices/googlemaps.asmx/GetGoogleMap/postid
、GetGoogleMap
はディレクトリでもquerystring
.
asp.net-mvc-3 - ViewModel を使用した RouteValues
次のような非常に単純なフィルター オブジェクトである ViewModel があります。
私が望んでいたのは、別のページからこのページへのルート リンクを作成し、次のようにルート URL の作成に FilterViewModel を渡すことでした。
Lo、反対側でレンダリングされるのは
おそらく、次のようにクエリ文字列にシリアル化されたものです。
私が箱から出してやろうとしていることをする方法はありますか?(または箱から出していない)
asp.net - ASP.NETMVC3ModelStateおよびRouteDataの配置
MVC3では、ルートデータは常にmodelStateコレクションにありますか、それとも、該当するコントローラーアクションのモデルバインダーに従ってそのキーが特に要求された場合にのみmodelStateコレクションにありますか?
説明する:
ホーム/インデックス/5?something = else
modelStateディクショナリには、キーが何か他の値がありますか、それともキーIDのみがありますか?