【问题标题】:In MVC architecture, can a controller and model manage more than one View?在 MVC 架构中,一个控制器和模型可以管理多个 View 吗?
【发布时间】:2015-04-27 07:38:12
【问题描述】:

我可以为模型和控制器创建 2 个视图吗? 我当前的应用程序是 MVC 投诉,它有一个单一的视图。

我需要创建第二个 GUI,它从模型中获取少量信息(从第一个 GUI 数据更新),更新它并在第一个 GUI 中显示。

【问题讨论】:

  • 您可以为单个模型和控制器添加多个视图,但每个视图在控制器中都有自己的操作

标签: c# .net model-view-controller


【解决方案1】:

每个操作可以有不同的视图。根据您的描述,这似乎是您正在寻找的。同一个模型有不同的action,没关系。

您可以为要更新的新信息添加一个新动作,然后单击鼠标右键,然后单击“添加视图”。它将为该操作添加一个新视图。

【讨论】:

    【解决方案2】:

    执行此操作的最常见方法是创建其他操作,为您要显示的每个视图创建一个。

    您可以拥有任意数量的视图,只要您可以在它们之间路由即可。

    默认情况下,return View();return View(model) 行将在以下路径中查找视图:/Views/{ControllerName}/{ActionName}。 您还可以指定视图名称,因为 Controller.View() 也接受字符串作为视图名称。 知道了这一点,您可以根据传递给您的操作的参数从单个操作显示不同的视图。 示例:

    public ActionResult Example(bool a)
    {
       if (a) return View("a");
       else return View("b");
    }
    

    如果 a 为真,这将调用视图 /Views/{ControllerName}/a.cshtml,如果 a 为假,则调用 /Views/{ControllerName}/b.cshtml。 您还可以使用 html 助手从您的第一个视图调用其他部分视图或操作:@Html.Partial({ViewName})@{Html.RenderPartial({ViewName});}@{Html.RenderAction({ActionName});}

    编辑: View() 还会搜索 /Views/Shared/{ActionName}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多