問題タブ [attributerouting]
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.
invalidoperationexception - AttributeRouting のインストール後に Web API が例外をスローする
.NET 4.5 を使用して単純な VB .NET Web API プロジェクトを開発しました
このプロジェクトは問題なく動作していましたが、AttributeRouting nuget パッケージをインストールすることにしました。このパッケージをインストールすると、すべての関数で次の例外が発生するようです。
ルート テンプレート 'Company' を持つルートの制約エントリ 'inboundHttpMethod' は、文字列値を持つか、'IHttpRouteConstraint' を実装する型である必要があります。
このメッセージの「Company」は、単純に 1 つのオブジェクトを返す単純な GET メソッドへのルート名です。すべてのルートでこのエラー メッセージが表示されます。スタックトレースは次のとおりです。
[InvalidOperationException: ルート テンプレート 'Company/{Id}' を持つルートの制約エントリ 'inboundHttpMethod' は、文字列値を持つか、'IHttpRouteConstraint' を実装する型である必要があります。]
System.Web.Http.Routing.HttpRoute.ProcessConstraint (HttpRequestMessage リクエスト、オブジェクト制約、文字列 parameterName、HttpRouteValueDictionary 値、HttpRouteDirection routeDirection) +346 System.Web.Http.Routing.HttpRoute.ProcessConstraints(HttpRequestMessage リクエスト、HttpRouteValueDictionary 値、HttpRouteDirection routeDirection) +201
System.Web.Http.Routing.HttpRoute .GetRouteData(String virtualPathRoot, HttpRequestMessage リクエスト) +430
AttributeRouting.Web.Http.Framework.HttpAttributeRoute.GetRouteData(String virtualPathRoot,HttpRequestMessage リクエスト) +250
System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext) +191
System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) +233
System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase コンテキスト) +60
システム.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(オブジェクト送信者, EventArgs e) +82
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136 System.Web.HttpApplication.ExecuteStep(IExecutionStep ステップ, Boolean& completedSynchronously) +69
私の問題を説明する次のスレッドを見つけました: https://github.com/mccalltd/AttributeRouting/issues/191
残念ながら、この修正は役に立たないようです: https://github.com/mccalltd/AttributeRouting/issues/191#issuecomment-13814025
これを修正する方法についてのアイデアはありますか?
asp.net-mvc - 404 が見つからないパラメーターの属性ルーティング番号
AttributeRouting を使用して、ActionResult の特定のルートを設定します。この構成では、404 ページが見つかりませんでした。
URLスニファーをインストールして、URLが404ページが見つからないことをトリガーすることを確認したところ、次のようになりました: http .../Tender/SubmitBid/1/0
動作しているはずですが、最新のパラメーターを削除して ActionResult に到達する必要があり、その理由がわかりません。
ご協力ありがとうございました、
カリン
編集 属性 [GET("Tender/SubmitBid/{id}/{bidId}")] を削除すると、POST リクエストでページにアクセスできます。しかし、URL は http...//Tender/SubmitBid/1?bidId=0 のようなものです
asp.net-mvc - http PUT メソッド制約を使用した属性ルーティング
私は MVC5 で新しい属性ルーティングを使用しており、アクション メソッドにおよび属性を追加することで、httpGET
およびPOST
メソッドの制約が機能するようになりました。しかし、追加すると、404 エラー ページが表示されます。http で属性ルーティングを機能させるために何をする必要があるか知っている人はいますか? 以下のコードを参照してください。[HttpGet]
[HttpPost]
[HttpPut]
PUT
私は試してみましたX-HTTP-Method-Override=PUT
そしてまた本物でPUT
c# - ルーティングするパーツが 4 つ未満の場合、Web API 属性ルーティングが機能しない
これはランダムなもので、私は困惑しています。
新しい属性ルーティング機能を利用できるように、プロジェクトを WebAPI 2 に更新しました。公式サイトのチュートリアルに従い、最終的にグローバル ファイルの構成を次のようにしました。
次に、WebApiConfig
クラスで属性ルーティングを次のように設定しています。
次に、ルート「api/users/{id}」を使用したアクション メソッドが必要です。
これまでのところ、これはすべて私には良さそうです。ただし、このルートにアクセスしようとすると、例外が発生します。
IControllerFactory 'withomph.Common.Ioc.DependencyControllerFactory' は、名前 'api' のコントローラーを返しませんでした。
MVCコントローラーのDependencyControllerFactory
依存性注入を行っている場所なので、なぜそこに行くのかわかりません。
奇妙なことに、ルートを変更して余分な部分を追加すると、次のようになります。
できます!私はこれをいくつかの異なるコントローラーで、異なる名前で、api を使用して、api を使用せずに試してみました。そして、常に同じです: ルートに 4 つ未満の部分がある場合、それは機能しません。4 を超えると機能します。
彼が何をファッジしているのか知っている人はいますか??!!
asp.net-mvc - 属性ルーティングを使用した Web API 2 で同じキー エラーが発生する
重複キーに関する以下のエラーが発生し続けるのはなぜですか? これは、属性ルーティングを試みる前は正常に機能していましたが、現在は機能していません。削除する{id:int}
と、ID が指定されていなくても、常に 2 番目のメソッドにヒットし、最初のメソッドにはヒットしません。
イベントコントローラー
/api/v1/events?id=12315 にアクセスする際のエラー
WebApiConfig.cs
c# - (ASP MVC4) 属性ルーティング / RedirectToRoute
私が達成しようとしていることについて少し助けが必要です。ASP MVC アプリを実行していますが、ルートを適切に作成できません。
私は nuget パッケージの Attribute Routing を使用しています (これはデフォルトで MVC5 に含まれています)。
最初は、正しいものを適切に一致させるすべてのルートを使用しても問題はありませんでしたが、その後、国際化に取り組み始め、すべてが爆発しました!
だからここに問題があります:
これらの URL を取得する必要があります: domain/culture/id/product/action ですが、製品のアクションは 1 つしかありません。そのため、ユーザーが私のウェブサイトにアクセスすると、言語が設定され、要求された製品にリダイレクトされます (要求されていない場合はデフォルトの製品)。
私は試した
return RedirectToRoute("/" + cultureName + "/" + id + "/" + productName + "/");
しかし、ルーティング エクスプローラーでルート /{culture}/{id}/ProductName が明確に表示されるため、ルートが存在しないことを伝えることはできませんでした。
これをこのように行うことは可能ですか、それともルーティングについての考え方を変える必要がありますか?