使用围绕多个视图的控制器传递视图模型

时间:2012-11-20 17:24:01

标签: c# asp.net-mvc razor

所以我有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)
    }

2 个答案:

答案 0 :(得分:1)

如果您想要预先形成逻辑,您可以使用@ Html.Partial("view name", object)调用另一个视图,您可以使用@Html.Action("action", "controller", object)调用另一个控制器操作。那就像任何其他控制器动作一样。通常从视图调用操作时会使用[ChildActionOnly]

进行修饰

答案 1 :(得分:0)

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

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