ASP.NET Zero: как добавить новую область в другой проект?

Я создал модульное приложение на основе Zero Framework, следуя этому руководству. для создания области в модуле Web. Поэтому я решил создать еще одну область (названную «Оплата») в корневом веб-проекте.

  1. Области/F1 ‹ -- моя область по умолчанию
  2. Области/Оплата ‹ -- новая область

Я создал очень простой контроллер (унаследованный от базового класса контроллера проекта), например:

 public class BankCodeController : FastOneControllerBase
    {
        // GET: Payment/BankCode
        public ActionResult Index()
        {
            return View();
        }
    }

... и мой Index.cshtml

@using FastOne.Web.Navigation
@{
    ViewBag.CurrentPageName = PageNames.App.Payment.BankCode;
}
<div class="row margin-bottom-5">
    <div class="col-xs-12">
        <div class="page-head">
            <div class="page-title">
                <h1>
                    <span>BankCode</span>
                </h1>
            </div>
        </div>
    </div>
</div>

<div class="portlet light">
    <div class="portlet-body">
        <p>BANK CODE CONTENT COMES HERE!</p>
    </div>
</div>

Но я столкнулся с ошибкой, как показано ниже, когда пытался получить доступ к этому представлению.

Контроллер для пути «/Payment/BankCode» не найден или не реализует IController.

> Line 40:     @RenderSection("Styles", false) 
> Line 41:      
> Line 42:     @Html.Action("TenantCustomCss", "Layout") 
> Line 43:  
> Line 44:     <script type="text/javascript">

Надеюсь, кто-нибудь может помочь мне с этой ошибкой в ​​​​руководстве по созданию этой области в веб-проекте модуля (в учебнике). Спасибо


person Hoang Tran    schedule 20.09.2017    source источник


Ответы (1)


Обновить

Я нашел это решение на форуме ASPNET Zero.

Так как я использую _Layout.cshtml из F1 области, возникает эта ошибка. Я исправил это, добавив имя области F1 к @Html.Action использованиям в _Layout.cshtml.

Например

@Html.Action("Header", "Layout") becomes @Html.Action("Header", "Layout", new { area = "F1" })
@Html.Action("Sidebar", "Layout", new { currentPageName = ViewBag.CurrentPageName }) becomes @Html.Action("Sidebar", "Layout", new { currentPageName = ViewBag.CurrentPageName, area = "F1" })
person Hoang Tran    schedule 20.09.2017