これを行うには、ルーティングを使用し、コントローラを別々の名前空間に保持します。 MapRouteでは、ルートに対応する名前空間を指定できます。
例
を考えると、このコントローラ:
namespace CustomControllerFactory.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return new ContentResult("Controllers");
}
}
}
namespace CustomControllerFactory.ServiceControllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return new ContentResult("ServiceControllers");
}
}
}
と次のルーティングを追加します
routes.MapRoute(
"Services",
"Services/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "CustomControllerFactory.ServiceControllers" } // Namespace
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new string[] { "CustomControllerFactory.Controllers"} // Namespace
);
あなたは次の応答
/サービス/ホーム期待するべきである - ServiceControllers
を
と /ホームコントローラー
あなたは[areas](https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas)の使用について考えましたか? – CodingYoshi
領域を使用している場合、 'BeginForm'は' routeValues'パラメータにエリア名を追加する必要があります。 '@using(Html.BeginForm(" SearchMotorcycle "、" Motorcycle "、new {area =" AreaName "}、FormMethod.Get 、null)) '。 –