我正在构建我的第一个 Asp.Net MVC2 站点,现在我正在尝试向该站点添加一个 /Admin 区域。
我不希望该区域对主要用户组可见,因此只有在您输入http://Intranet/Admin时才能访问
我拥有的是一个供普通用户使用的 NewsController,但我也想要一个 Admin NewsController,但我不确定如何设置类层次结构和文件夹,以便在添加视图时它们位于正确的位置。
在我添加的 Global.Asax.cs 中,路由正确解析。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "Intranet.Controllers" }
);
routes.MapRoute(
"Admin", // Route name
"Admin/{controller}/{action}/{id}", // URL with parameters
new { controller = "Admin", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
new string[] { "Intranet.Controllers.Admin" }
);
在我设置的文件夹层次结构中
Views/
Admin/
News/
...I want the new view to go here...
在控制器中
Controllers/
Admin/
AdminController.cs
NewsController.cs (this is the one i want for administration)
NewsController.cs (this is the regular one for viewing the list, specific item etc)
我面临的问题是,当我进入 Index 上的 admin/NewsController.cs 并添加视图时,它会尝试在 /News/Index.aspx 而不是 /Admin/News/Index.aspx 中创建它。
这是我的管理员新闻控制器 Controllers/Admin->Add->Controller 的代码
namespace Intranet.Controllers.Admin
{
public class NewsController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
有什么我做错了,或者我应该改变什么,以便当我添加视图时,它们正在 /Admin/{area} 目录中创建。