2013-07-28 51 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在所有的諧音可用的,但是,你必須意識到的事實,你可能無法預測,其中部分將執行該命令。也就是說,如果一個部分依賴於另一個部分中設置的變量,則不能保證其他部分將在該部分之前呈現。

最佳做法是設置控制器中的所有變量,然後僅在視圖中使用它們。