MVC 4アプリケーションで作業しています。私の問題は、特定のコントローラのURLはhttp://domain/category/clothing/1256
、またはhttp://domain/category/clothing/shirts/formal/128
'となります。ご覧のとおり、URLの深さは変わりますが、すべてがカテゴリコントローラにルーティングされなければなりません。動的URLのルート設定
URLの最大部がわからないので、パラメータがいつ来るかわからないので、User Routeconfigを使用できません。
routes.MapRoute(
name: "Category",
url: "Category/{ignore}/{id}/{SubCatId}/{SubSubCatId}",
defaults: new { controller = "Category", action = "Index", CatId = UrlParameter.Optional, SubCatId = UrlParameter.Optional, SubSubCatId = UrlParameter.Optional },
namespaces: new[] { "CSPL.B2C.Web.Controllers" },
constraints: new { id = @"\d+" }
);
上記のコードは、1つのレベルのアカウントとして機能しません。
public ActionResult Index(string id, string SubCatId, string SubSubCatId)
{
return view();
}
あなただけ持つことができます最後のパラメータは 'UrlParameter.Optional'とマークされています。そしてあなたのルート定義にも存在しない3つのパラメータ 'CatId'、' ChildCatId'、 'viewtype'を参照してください) –
yupが変更されました。それでもIdを正しく取得する方法 –
別のルート定義を(同じコントローラに対して)作成する必要がありますが、どのオプションが必要かわからず、メソッドのシグネチャが表示されていません –