0

我有一个包含三个部分视图的布局。是否可以在每个之间共享 ViewBag 变量?如果没有,我如何将一个部分视图的一些信息分享给另外两个?谢谢

4

4 回答 4

1

我会通过将它传递到视图中来做到这一点,这样它的依赖关系就更加明确了。

将来自父模型的公共数据单独作为模型或作为子模型的一部分传递到局部视图模型中。

@Html.Partial("Partial1",  Model.CommonData)
@Html.Partial("Partial2",  Model.CommonData)
@Html.Partial("Partial3",  Model.CommonData)
于 2013-07-29T00:15:29.920 回答
0

是的,你可以。

ViewBag只需在您的项目中设置一个值controller并在您的partials.

例如

控制器动作:

public ActionResult Index()
{
    ViewBag.Test = "Something";
    return View();
}

看法:

<div>@Html.Partial("_Test")</div>

部分的:

@ViewBag.Test
于 2013-07-28T23:54:06.557 回答
0

我不是 100% 确定,但我相信 ViewBag 在所有视图之间共享。

如果这对您不起作用,您不能将类中的共享变量从您的控制器传递到部分视图吗?

于 2013-07-28T23:56:10.680 回答
0

是的,ViewBag 可用于所有部分,但是,您必须意识到您可能无法预测部分执行的顺序。也就是说,如果一个部分依赖于在另一个部分中设置的变量,则不能保证另一个部分将在该部分之前呈现。

最佳实践是在控制器中设置所有变量,然后只在视图中使用它们。

于 2013-07-29T01:05:19.140 回答