2013-07-28 49 views
0

我有一个包含三个局部视图的布局。是否可以在每个之间共享ViewBag变量?如果不是,我怎样才能将一个局部视图的信息分享给另外两个? 谢谢在ASP.Net中共享变量MVC 3

回答

0

是的,你可以。

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

例如

控制器动作:

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

查看:

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

部分:

@ViewBag.Test 
0

我不是100%肯定,但我相信的是,ViewBag是所有共享视图。

如果这对你不起作用,你不能将类中的共享变量从你的Controller传递给局部视图吗?

1

我会通过将它传递给视图来做到这一点,以便更明确地显示它的依赖关系。

将通用数据从父模型传递到子模型的ViewModel,或者自己作为模型或作为子模型的一部分。

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

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

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