asp.net嵌套视图与拥有控制器

时间:2014-11-27 05:59:55

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

我有一个目标来创建视图/控制器的嵌套架构。例如: 我们网页上的区域很少。所有这些区域都由自己的控制器管理。换句话说,我需要创建独立页面,然后将它们加入到一个页面中。 请参阅图片:enter image description here

那么我可以阅读它吗?感谢。

2 个答案:

答案 0 :(得分:2)

是的,您只需拨打

即可实现此目的

@ Html.Action(“ActionName”,“ControllerName”);

示例:

在你的情况下,你可以这样做

<强>控制器1

 public ActionResult View1()
    {

        return View("View1");
    }

<强>控制器2

 public ActionResult View2()
    {

        return View("View2");
    }

<强> Controller3

 public ActionResult View3()
    {

        return View("View3");
    }

在主页面中调用:

@Html.Action("View1", "Controller1");
@Html.Action("View2", "Controller2");
@Html.Action("View2", "Controller2");

在主页的不同部分调用它们,无论你想要什么。

答案 1 :(得分:1)

您可以使用@Html.Action()来呈现来自不同控制器的子视图

public class FirstController : Controller
{
  public ActionResult Index()
  {
    return View();
  }
}

public class SecondController : Controller
{
  [ChildActionOnly]
  public ActionResult Method1()
  {
    return PartialView();
  }
}

public class ThirdController : Controller
{
  [ChildActionOnly]
  public ActionResult Method2(int ID)
  {
    return PartialView();
  }
}

索引视图(FirstController)

....
@Html.Action("Method1", "Second")
@Html.Action("Method2", "Third", new { ID = someValue })

你也可以使用@{ Html.RenderAction();更有效率的是你生成了很多html。