Asp.net 创建三列布局,全部为动态

Asp.net 创建三列布局,全部为动态,asp.net,asp.net-mvc,layout,Asp.net,Asp.net Mvc,Layout,我想使用Visual Studio 2013中的MVC模型在asp.net中创建一个动态网站 所有列都将具有动态内容,每个列根据用户操作或控制器的不同选择更改其内容 如何创建这三个动态列 我已经有了HTML和CSS的布局,但我需要将这三列分开,并有可能从我的控制器中更改它们的内容 稍后编辑: 在我的例子中,我在网站上有两个菜单,一个在左边,另一个在右边。实际上他们是三个,另一个在上面。当我从顶部选择某项内容时,必须根据顶部选择显示左侧菜单。您可以使用ViewBag或ViewData填充每列。因此

我想使用Visual Studio 2013中的MVC模型在asp.net中创建一个动态网站

所有列都将具有动态内容,每个列根据用户操作或控制器的不同选择更改其内容

如何创建这三个动态列

我已经有了HTML和CSS的布局,但我需要将这三列分开,并有可能从我的控制器中更改它们的内容

稍后编辑:
在我的例子中,我在网站上有两个菜单,一个在左边,另一个在右边。实际上他们是三个,另一个在上面。当我从顶部选择某项内容时,必须根据顶部选择显示左侧菜单。

您可以使用
ViewBag
ViewData
填充每列。因此,在布局中,使用这些数据来计算这些列,例如:

1)调用此操作将更改指定内容:

public ActionResult MyView()
{
  // you can put anything in this ViewBag, 
  // a string, a list of something and then use it in the view
  // Its dinamyc

  ViewBag.Column1 = "My content column 1";
  ViewBag.Column2 = "My content column 2";
  ViewBag.Column3 = new string[] {"Product1", "Product1", "Product1"};
}
<div id='column1'>
  @ViewBag.Column1
</div>
<div id='column2'>
  @ViewBag.Column2
</div>
<div id='column3'>
  <ul>
  @foreach(var s in ViewBag.Column3)
  {
    <li>
      @s
    </li>
  }
  <ul>
2)在版面中使用此数据以生成动态内容:

public ActionResult MyView()
{
  // you can put anything in this ViewBag, 
  // a string, a list of something and then use it in the view
  // Its dinamyc

  ViewBag.Column1 = "My content column 1";
  ViewBag.Column2 = "My content column 2";
  ViewBag.Column3 = new string[] {"Product1", "Product1", "Product1"};
}
<div id='column1'>
  @ViewBag.Column1
</div>
<div id='column2'>
  @ViewBag.Column2
</div>
<div id='column3'>
  <ul>
  @foreach(var s in ViewBag.Column3)
  {
    <li>
      @s
    </li>
  }
  <ul>

@ViewBag.Column1
@ViewBag.2
    @foreach(ViewBag.Column3中的变量s) {
  • @
  • }

您应该在此处查看更多信息:

您还应该使用部分,请查看以下内容:


我建议您执行三种不同的控制器操作。例如:

public ActionResult Part1()
{
return View();
}

public ActionResult Part2()
{
return View();
}

public ActionResult Part3()
{
return View();
}
然后在你的公共页面上给他们打电话。 例如:


@Html.Action(“第1部分”)
@行动(“第二部分”)
@行动(“第三部分”)

可以在控制器的视图中包含选择条件控件。i、 e.如果您需要第一个区块的下拉列表。将其放置在零件1视图中。另外,为了使其异步,您可以在所有三个视图中使用Ajax表单。

这是否意味着每个控制器都必须具有所有这三个ActionResult?不。只有一个控制器具有它,然后您可以在任何地方使用它。要从其他控制器访问它,您可以使用@Html.Action(“Part1”,“ControllerNameWherePart1IsDefined”)是的,但我仍然需要调用它!我想我有一个解决办法,但我不知道它有多好。我想用一个基本的控制器来定义这三个部分,然后在控制器代码的末尾调用left和right View()s。中柱是主视图()。我认为这不是一个解决方案,因为我必须在每个控制器中重新填充这三个柱。第二种方法是分段,这似乎是一种更好的方法。我将尝试为我的案例做一些测试,然后我会带着细节回来。