0

从这里我对在 ASP.NET MVC 中设置备用控制器文件夹位置有了一点了解。这是在 ASP.NET MVC 中设置备用控制器文件夹位置的 url

他们指导我们,我们可以更改命名空间,也可以在例程代码中指定命名空间,通过这些方式我们可以解决它,但上面的链接没有显示如何在其他文件夹位置更改或存储与控制器相关的 .cs 文件。

假设我想将控制器存储在根目录中名为mycontroller的文件夹中,那么我需要做什么。请指导我。谢谢

更新

您可以使用路由来执行此操作,并将控制器保存在单独的命名空间中。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");
        }
    }
}

And the following routing

 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
        );

您应该期待以下响应

/Services/Home

        ServiceController

/Home

        Controllers
4

2 回答 2

0

无需做任何事情,将控制器存储在Controllers其中只是惯例,而不是要求。基本上,您可以将控制器存储在任何文件夹中。

于 2013-11-14T08:21:38.537 回答
0

检查你的RouteConfig.cs,你可能会发现已经为每条路由定义了一个命名空间。您的控制器类可以放置在项目中的任何位置,只要它们仍然与您的路由中定义的命名空间相匹配。

于 2016-06-20T11:25:08.343 回答