使用mvc.net可以在多个操作之间共享视图

时间:2010-09-02 20:38:10

标签: asp.net-mvc

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

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

看起来我需要针对每个操作执行操作。这很好,也是可以理解的。我的问题是关于与用户交互的观点。

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

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

3 个答案:

答案 0 :(得分:6)

是的,绝对的。您将需要使用带有字符串的View()重载。该字符串是要呈现的视图的名称:

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

答案 1 :(得分:1)

View()方法可以将视图的名称作为参数,因此您可以从多个操作中呈现相同的视图。默认情况下(如果未指定视图名称),框架使用名为当前操作的视图。请参阅here for details

答案 2 :(得分:0)

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

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

编辑:正如其他人所说,你也可以在行动之间分享观点。那里也有我自己的noob时刻。 :)