2010-05-03 71 views
0

我需要一個很好的例子或指南,它可以給我一個數據在視圖和局部視圖之間傳遞的模式。ASP.NET MVC數據傳遞

例如,我有一個包含多個部分視圖的視圖。我用ajax刷新這些局部視圖。所以我需要在視圖和部分視圖之間傳遞數據。

最好的方法是如果我可以在不使用Temp數據字典的情況下傳遞數據。

有人對此有所瞭解嗎?

l。

回答

3

1)一種方法是調用RenderAction(),然後轉到控制器操作,然後控制器將數據返回到View或PartialView作爲它的模型。一般而言,您應儘可能使用強類型視圖和部分視圖,並儘量避免使用ViewData和TempData。 2)您也可以使用RenderPartial(「some view」,ObjectData)將整個業務對象或POCO對象或CLR變量發送到局部視圖。 3)你也可以將部分視圖的強類型與你的主視圖(加載這些部分的視圖)保持一致。如果你有相同的類型,那麼只做RenderPartial(「一些視圖」)會使用與「主」或「父」視圖相同的Model來渲染你的局部視圖。

我認爲我的應用程序中ViewData或TempData的用法不超過3-5個,我幾乎從不使用它。

+0

這是很好的建議,+1 – Tejs 2010-05-03 13:15:04

+0

謝謝你的答案..我嘗試按照你的建議步驟。 但我有一個奇怪的錯誤。我將同一模型傳遞給部分視圖和「父」視圖。我爲viemodel屬性設置了一個不同的值,但在ajax刷新後,我在頁面上看到原始值,而不是通過控制器操作中通過ajax請求設置的新值。 你知道爲什麼會發生這種情況嗎? – user295541 2010-05-03 15:05:47

+0

發佈您的視圖和您的控制器操作的代碼,讓我們看看。 – mare 2010-05-03 15:16:11