私は属性ルーティングを使用していますが、優れていると思います。特に、多くの異なる文化で自分のルートをローカライズできるという事実.
不規則に発生する問題に遭遇しました。それは時々発生し、他では発生せず、パターンを見つけることができません。
私が持っているアクションメソッドは次のとおりです。
[GET("/")]
[GET("{productId:int}")]
[GET("{category2Id:int},{productId:int}/{category2Slug}/{productSlug}")]
[GET("{category2Id:int},{category3Id:int},{productId:int}/{category2Slug}/{category3Slug}/{productSlug}")]
[GET("{category2Id:int},{category3Id:int},{category4Id:int},{productId:int}/{category2Slug}/{category3Slug}/{category4Slug}/{productSlug}")]
public virtual ActionResult Index(int productId, string productSlug = null, string category2Slug = null, string category3Slug = null, string category4Slug = null, int? category2Id = null, int? category4Id = null, int? category4Id= null)
私のコントローラーには次の装飾が施されています
[SessionState(SessionStateBehavior.Disabled)]
[RoutePrefix("product", TranslationKey = "product")]
public partial class ProductController
そして問題は、属性のレンダリングが正しいURLを生成することがあることです。 https://localhost/product/22,33,999/cat2/cat3/product-name
しかし、ほとんどの場合、以下が生成されます:https://localhost/product/999/?productSlug=product-name&category2Slug=cat2&category3Slug=cat3&category2Id=22&category3Id=33
なぜこれが発生しているのか、そしてコントローラーのアクションパラメーターがURLの一部ではなくクエリ文字列パラメーターとして追加されているという考えはありますか?
私は、属性ルーティングのバージョンが 3.4.2.0 の C# で開発された mvc4 アプリケーションに取り組んでいます。
何か案は?