在子文件夹中使用Html.Action和控制器

时间:2012-12-17 19:45:08

标签: asp.net razor asp.net-mvc-4

我正在使用asp.net mvc4构建一个webapge。对于组织,我想将一些控制器放在Controllers文件夹中的子文件夹中。例如:

 Controllers
   AccountController
   BlahController
   Dashboard (Folder)
     ChickenController
     BeefController

要使用BeefController(返回部分视图),我似乎应该使用:

 @Html.Action("Index", "Dashboard/BeefDashboard")

但是这会给我带来以下错误:

 The controller for path '/' was not found or does not implement IController.

我怎样才能使用BeefController?

1 个答案:

答案 0 :(得分:1)

ASP.NET MVC世界中没有物理子文件夹概念。你应该做的是在Dashboard控制器中有一个action方法,它接受一个参数然后根据它返回特定的视图。

public class DashBoardController: Controller
{
  public ActionMethod Index(string id)
  {
    if(id=="chicken") 
    {
      return PartialView("Chicken");
    }
    else if(id=="beef") 
    {
      return PartialView("beef");
    }
    return View("NotFound");
  }

}

现在您可以访问

之类的内容
Dashboard/beef
Dashboard/chicken