1
http://localhost:51577/Item/AnyActionName/Id
は、コントローラ名は静的であり、ダイナミックである必要はありませんのでご注意ください。一方、私はアクション名の部分を動的にする必要がありますので、URLのその部分に書かれているものは、Item
コントローラ内のIndex
アクションにリダイレクトします。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapRoute(
"Items",
"Item/{action}/{id}",
new { controller = "Item", action = "Index", id = UrlParameter.Optional });
}
そして、私は私のアプリをビルドするとき、私は次のエラーを取得::私がこれまで試してみました何
がある
The resource cannot be found.
編集:
ここは私Global.asax
ですファイルとrouteconfig.cs
ファイル:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
}
そして、ここで@Nkosiが提供した答えとRouteConfig.cs
ファイルの内容です:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Items",
url: "Item/{id}/{*slug}",
defaults: new { controller = "Item", action = "Index", slug = UrlParameter.Optional }
);
}
}
誰かが 'item/create'をリクエストしたとしても、それはIndexアクションに行くべきですか? – Shyju
ええ、それは決してアイテム/作成するつもりはないです、それはアイテムの名前になるでしょう:) – User987
あなたは{アクション}のURLの一部がアイテムの名前だと言いますか?パラメータがありますか?インデックスアクションメソッドのシグネチャとアクセスしようとしているURLを共有できますか? – Shyju