Al fine di includere uno spazio in un'applicazione ASP.NET core, in primo luogo abbiamo bisogno di includere un percorso convenzionale nel file Startup.cs
(è meglio posizionarlo prima di ogni percorso non area):
In avvio .cs/Configure metodo:
app.UseMvc(routes =>
{
routes.MapRoute("areaRoute", "{area:exists}/{controller=Admin}/{action=Index}/{id?}");
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
poi fare una cartella denominata Areas
nella radice app e fare un altro nome Admin
all'interno dell'ex, anche fare queste cartelle all'interno Admin
(ViewComponent è opzionale):
Ora creiamo un controller all'interno della cartella denominata Controllers
AdminController
, il contenuto può essere come:
[Area("Admin")]
[Route("admin")]
public class AdminController : Controller
{
public AdminController()
{
// do stuff
}
public IActionResult Index()
{
return View();
}
[Route("[action]/{page:int?}")]
public IActionResult Orders()
{
return View();
}
[Route("[action]")]
public IActionResult Shop()
{
return View();
}
[Route("[action]/newest")]
public IActionResult Payments()
{
return View();
}
}
Ora, al fine per questo al lavoro, avrete bisogno di creare Visualizzazioni per tutte le azioni che ne restituiscono una. La gerarchia per la vista è proprio come quello che hai in una cartella Visualizzazioni non zona:
Ora, si dovrebbe essere pronti per partire!
Domanda: Cosa succede se si dispone di un altro controller nella mia area?
Risposta:
Basta aggiungere un altro controller accanto AdminController
e assicurarsi che i percorsi sono come i seguenti:
[Area("Admin")]
[Route("admin/[controller]")]
public class ProductsController : Controller
{
public ProductsController()
{
//
}
[Route("{page:int?}")]
public IActionResult Index()
{
return View();
}
}
La parte importante è [Route("admin/[controller]")]
. Con questo puoi mantenere lo stile di routing su admin/controller/action/...
Questo è testato su RC1, RC2 e 1.0. Funziona completamente. – VSG24
Ho creato un esempio come mostrato sopra e aggiungo l'area di amministrazione, funziona bene, ma quando ho pubblicato il mio progetto, non ha pubblicato l'area di amministrazione e le viste e i file, come posso gestirlo? – motevalizadeh
@motevallizadeh, Un'altra mia domanda! https://stackoverflow.com/questions/37326068/asp-net-core-rc2-area-not-published – VSG24