Я создаю свой первый сайт 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)
Проблема, с которой я сталкиваюсь, заключается в том, что когда я захожу в admin / NewsController.cs в Index и Add View, он пытается создать его в /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}.