2014-04-30 63 views
1
Root  
    - Controllers 
       - CommonController 
        namespace Nop.Web.Controllers 
        { 
         public partial class CommonController 
         { 
         .... 
         } 
        } 

    - Areas (book) 
      - Controllers 
         - CommonController 
          namespace Nop.Web.Controllers 
          { 
           public partial class CommonController 
           { 
            public ActionResult LoginBox(...) 
           {..} 
           } 
          } 
      - View 
         - Common 
           - LoginBox.cshtml 

所以現在在區域帳簿的佈局視圖中,我怎麼能叫的登錄框命名空間組織

@ Html.Action( 「LoginBox」, 「客戶」)=> {「控制器爲路徑「/本書」沒有被發現,或者不執行一個IController。「}

肯定是因爲它沒有確切的命名空間

@ Html.Action(」日誌收件箱」,‘客戶’,新{面積=‘’})

=>沒有得到控制,但因爲它使用的根命名空間找到Loginbox視圖的位置這是一個錯誤找不到視圖路徑。

因此無論如何仍然可以保留在Book區域中的loginbox.cshtml,但Common Controller可以共享其他API。

+1

爲什麼要使用部分類,而不是繼承? – ChrFin

回答

0

我認爲你應該使用繼承,而不是局部類:

Root  
- Controllers 
      - CommonController 
       namespace Nop.Web.Controllers 
       { 
        public class CommonController 
        { 
        .... 
        } 
       } 

- Areas (book) 
     - Controllers 
        - CustomerController 
         namespace Nop.Web.Areas.Book.Controllers 
         { 
          public class CustomerController : CommonController 
          { 
           public ActionResult LoginBox(...) 
          {..} 
          } 
         } 
     - View 
        - Customer 
          - LoginBox.cshtml 

然後下面的調用應該工作:

@Html.Action("LoginBox", "Customer")