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”,“Customer”)=> {“未找到路径'/ book'的控制器或未实现IController。”}
当然因为它没有确切的命名空间
@ Html.Action(“LoginBox”,“Customer”,new {area =“”})
=>确实进入控制器但找不到视图,因为它使用根命名空间来查找Loginbox视图的位置,这是一个错误的路径。
无论如何仍然可以保留Book区域中的loginbox.cshtml,但Common Controller可以共享其他API。
答案 0 :(得分: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")