Вы можете сделать это, используя Areas
. Вы можете найти все о них на странице microsoft docs .
Проект MVC с частичными представлениями, которые вы хотите использовать, требует такой структуры (находится на странице microsoft docs см. ссылку выше):
Итак, допустим, вам нужно частичное представление с именем _TestPartial.cshtml
в области Home
. Тогда вам понадобится следующая структура:
Затем в основном проекте вы ссылаетесь на этот новый проект, который вы создали.
Далее , вам нужна дополнительная конечная точка в вашем startup.cs
файле:
app.UseEndpoints(endpoints =>
{
endpoints.MapAreaControllerRoute(
name: "Home",
areaName: "Home",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
Наконец, вы можете использовать эту частичную точку в своих представлениях следующим образом:
<div>@await Html.PartialAsync("/Areas/Home/Views/Home/_TestPartial.cshtml")</div>
Теперь вы также можете перенаправить на действия контроллера в этих областях выглядят следующим образом:
return RedirectToAction("Index","Home",new { area = "Home "});