【问题标题】:with mvc.net is it possible to share a view between multiple actions使用 mvc.net 是否可以在多个操作之间共享视图
【发布时间】:2011-04-07 13:26:28
【问题描述】:

这是一个菜鸟问题,但无论如何我都会问它......

我想创建一个对项目列表执行基本 CRUD 操作的页面: - 显示列表 - 编辑一个项目 - 创建一个项目 - 删除一个项目

看起来我需要为每个操作执行一个操作。这很好并且可以理解。我的问题是关于与用户交互的视图。

我想要就地编辑,所以用户点击编辑,他们可以编辑列表中项目的详细信息。以我目前的理解,我将不得不在“显示列表”和“编辑项目”之间复制大量视图。但是,这似乎是不必要的冗余,并且会使以后的更新更加耗时,因为我必须更新每个视图。

有没有更简单的方法?我在正确/错误的轨道上吗?还有其他的cmets吗?

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    是的,当然。您需要使用带有字符串的View() 的重载。该字符串是要渲染的视图的名称:

    public ActionResult MyAction()
    {
        return View("MyViewName");
    }
    

    【讨论】:

      【解决方案2】:

      View() 方法可以将视图的名称作为参数,因此您可以通过多个操作渲染同一个视图。默认情况下(如果您未指定视图名称),框架使用名为当前操作的视图。见here for details

      【讨论】:

        【解决方案3】:

        我相信您应该研究的是渲染部分视图,它们是类似于 WebForms 中的 UserControls 的 .ascx 页面。它们基本上是共享的部分视图,您可以在许多视图中用于相同的目的。

        如果您查看默认项目模板,您可以找到登录控件等项目的示例。

        编辑:正如其他人所指出的,您还可以在操作之间共享视图。那里也有我自己的菜鸟时刻。 :)

        【讨论】:

          猜你喜欢
          • 2015-09-08
          • 2018-07-22
          • 1970-01-01
          • 2011-05-07
          • 2019-01-18
          • 2023-01-12
          • 2015-07-13
          • 2015-11-28
          • 1970-01-01
          相关资源
          最近更新 更多