2010-04-11 478 views
0

經過一週的asp.net mvc2,我仍然沒有理解ViewData.model的優點,或者我可以如何正確使用Viewdata。有人可以教我如何正確使用Viewdata嗎?asp.net MVC中的ViewData。*和TModel

什麼是TModel與viewdata相關?如何利用TModelviewdata explanation in spark view engine談到TModel,我無法得知我如何在我的項目中使用它。有人能幫我嗎?

+0

這是關於ASP.NET MVC或關於Spark View Engine的問題嗎?因爲術語「查看數據」在兩者之間具有細微的不同含義。 – Aaronaught 2010-04-11 18:28:04

+0

@Aaronaught其實我很困惑。從這兩個意義上的解釋將幫助我很多.. – 2010-04-11 18:29:01

+0

http://www.asp.net/learn/mvc-videos/video-9139.aspx – 2010-04-12 02:41:52

回答

2

ViewData.Model的東西,你可以在控制器動作設置和獲取傳遞給視圖,您可以像訪問此

<%=ViewData.Model.Description %> 

<%=Model.Description %> 

也就是說,如果類你傳遞給View包含屬性說明:

public ActionResult GetInstance(string id) 
{ 
    MyContent content = GetContentFromDatastore(id); 
    return View(content); 
} 

與此MyContent類

MyContent 
{ 
    string id; 
    string description; 
} 

基本上要發送一個類的實例(其屬性的對象設置,最有可能從數據庫獲取)回查看,並在視圖中顯示它的數據,查看作爲ASCX或ASPX文件,最終顯示給用戶/訪問者。這是一個非常簡單的例子,但不清楚你到底想要什麼以及你已經知道了多少。但是暫時不要讓Spark(和其他視圖引擎)離開這個問題,直到你熟悉ASP.NET MVC基礎。

1

Mare是正確的,你可以通過訪問ViewData.ModelName.PropertyName項目在你的視圖中使用你的模型。

此外,而在你的控制器,你可以在ViewData字典設置某些鍵/值對:

ViewData["Address1"] = "2222 Somewhere"; 

,然後訪問它在您的觀點:

<%= Html.Encode(ViewData["Address1"]) %> 

顯然它不會是理想的使用鍵/值對來處理所有數據,這就是爲什麼您可以創建自己的類來封裝數據,並將其傳遞到您的視圖以便於操作。