在多个视图周围传递带有控制器的视图模型



所以我有 3 个视图,一个控制器和一个模型。(仅举个例子)第一个视图设置用户的名字和姓氏。它被回发到控制器,我可以在视图模型中看到数据。然后控制器调用第二个视图设置电子邮件(我可以从视图 1 调用数据)。 第三个视图显示所有数据(视图 1 中的原始内容不再存在)

@Html.DisplayFor(m => m.FirstName)
@Html.DisplayFor(m => m.LastName)
@Html.DisplayFor(m => m.Email)

您认为创建静态单例模型可以在控制器中工作吗?或者我应该使用 TempData

编辑:对不起,我忘记了我的控制器

控制器中的 GET 方法是否需要参数?

   [HttpGet]
    public virtual ActionResult SignUp1(model m)
    {
        return View(m)
    }
您可以使用

@ Html.Partial("view name", object) 调用另一个视图 如果要执行逻辑,可以使用 @Html.Action("action", "controller", object) 调用另一个控制器操作。 然后,它就像任何其他控制器操作一样。 通常,从视图调用操作用[ChildActionOnly]

静态对于网页来说是一个坏主意,因为它本质上不是线程安全的(见这里)。 这意味着,如果你有两个或更多人同时使用它,你会得到非常奇怪的行为。

我不确定你为什么甚至考虑这样做 - 你有什么具体的原因在考虑吗? 正确的方法是将模型从每个视图发布回每个控制器操作,每次填充更多数据。 或者,您可以回发到同一操作,然后根据模型中缺少哪些字段(如果没有,则返回显示)返回相应的视图。

最新更新