所以我刚刚更新了我的应用程序以使用ASP.NET Core RC2.我使用Visual Studio发布它并注意到我的区域未发布:
此快照来自src\MyProject\bin\Release\PublishOutput:
这是我Admin在Visual Studio中命名的区域:
我错过了一步还是什么?
如何为MVC CRUD操作创建前缀路由。我正在开发需要管理员和前端的应用程序。对于管理员,我希望所有路线都指向localhost:5000/admin/....
我有不同的控制器
public class RoomsController : Controller
{
// GET: Rooms
public async Task<IActionResult> Index()
{
return View(await _context.Rooms.ToListAsync());
}
//...
}
Run Code Online (Sandbox Code Playgroud)
和
public class SlidersController : Controller
{
private readonly ApplicationDbContext _context;
public SlidersController(ApplicationDbContext context)
{
_context = context;
}
// GET: Sliders
public async Task<IActionResult> Index()
{
return View(await _context.Sliders.ToListAsync());
}
//...
}
Run Code Online (Sandbox Code Playgroud)
现在我希望管理路线为
public class RoomsController : Controller
{
// GET: Rooms
public async Task<IActionResult> Index()
{
return View(await _context.Rooms.ToListAsync());
}
//...
}
Run Code Online (Sandbox Code Playgroud)
而其他路线仍然存在
public …Run Code Online (Sandbox Code Playgroud) 我的新区域有这个文件夹结构
这是我在启动时设置它的方式:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
Run Code Online (Sandbox Code Playgroud)
这就是我创建basecontroller的方法
namespace App.Areas.Applications.Controllers
{
[Area("Applications")]
[Authorize]
public abstract class ApplicationsBaseController : Controller
{
}
}
Run Code Online (Sandbox Code Playgroud)
我的ApplicationsController然后继承BaseController
但是,当我设置这样的链接时
<li class="nav-item"><a asp-area="Applications" asp-controller="Applications" asp-action="Index" class="nav-link">Applications</a></li>
Run Code Online (Sandbox Code Playgroud)
这是我的网址https:// localhost:44338/Applications?area = Applications中显示的链接,我找不到页面.
在设置我的区域时我错过了什么?
编辑:
当我在[区域("应用程序")]之后添加[路径("应用程序/ [控制器]")]时,出现此错误
处理请求时发生未处理的异常.AmbiguousActionException:匹配多个动作.以下操作匹配路由数据并满足所有约束:
App.Areas.Applications.Controllers.ApplicationsController.Index(App)App.Areas.Applications.Controllers.ApplicationsController.Create(App)App.Areas.Applications.Controllers.ApplicationsController.NewRole(App)