3 回答
TA贡献1779条经验 获得超6个赞
我在这里找到了解决方案。ControlPanel 区域中的 Home 控制器必须如下所示:
namespace Solution.Areas.ControlPanel.Controllers
{
[Area(nameof(ControlPanel))]
[Route(nameof(ControlPanel) + "/[controller]")]
public class HomeController : Controller
{
public IActionResult Index() => View();
}
}
重要的部分是 [Route(nameof(ControlPanel) + "/[controller]")]。
TA贡献1725条经验 获得超7个赞
你的说法不完全清楚,试试这个:
return RedirectToAction("action", "controller", new { area = "area" });
TA贡献1817条经验 获得超14个赞
确保首先注册您的区域路线:
app.UseMvc(routes =>
{
routes.MapRoute(name: "areas", template: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
});
替代定义每个区域控制器的控制器级别路由:
[Area("[areaname]")]
[Route("[areaname]/[controller]")]
public class YourController : Controller
{
public IActionResult Index() => View();
}
所有其他失败都明确使用路由:
var url = Url.RouteUrl("areas", new { controller = "[controller]", action = "Index", area = "[areaname]" });
return Redirect(url);
- 3 回答
- 0 关注
- 184 浏览
添加回答
举报