Share variables in ASP.Net MVC 3



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

我会把它传递到视图中,这样它的依赖关系就更明确了。

将公共数据从父模型传递到分部的ViewModel中,既可以作为模型本身,也可以作为子模型的一部分。

@Html.Partial("Partial1",  Model.CommonData)
@Html.Partial("Partial2",  Model.CommonData)
@Html.Partial("Partial3",  Model.CommonData)

是的,你可以。

只需在controller中为ViewBag项目设置一个值,并在partials中引用它。

例如

控制器动作:

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

视图:

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

部分:

@ViewBag.Test

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

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

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

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

最新更新