2015-05-07 43 views
0

我正在動態加載一個表,並且有未知數量的行。每行(每個細胞,實際上)從數據庫加載並連接成一個字符串:ViewData裏面的ViewData字符串

tableItems+="<td colspan='8' class='reportHeaderMain borderThin'> @ViewData[\"" + tString + "Title\"]</td>"; 
在上面的代碼

,tString是項目數,所以標題會是這樣的「12345Title」。後來在控制器的ActionResult,我的值賦給ViewData的項目:

ViewData[tString + "Title"] = ((linkedArrayList)tObj[temp]).getInfo("Brand"); 

在斷點,所有的值店正常,但它呈現在頁面上爲「@ViewData [」 ...「]」,而不是ViewData值。我想這是因爲預處理器正在做一次而不是兩次;這是寫,它正確地呈現字符串值,但不處理結果字符串(注:標記顯示正確)。這可能是固有的單聲道,也可能是因爲,在視圖中,我使用的HTML生:

@Html.Raw(@ViewData["tableItems"]) 

我意識到這是不產生這樣的控制器標記的最佳實踐,但是這是我正在與什麼工作。有沒有人有任何想法如何讓字符串中的ViewData呈現爲值(例如,品牌名稱)而不是「ViewData [...]」?然而,替代方法更受歡迎(因爲我是MVC的新手),如果另一種方法是解決方案,我會禮貌地詢問細節。

謝謝

回答

0

我覺得愚蠢...我會刪除這個問題,但它實際上可能幫助同胞newbs到MVC。如果有人遇到類似的問題,請記住您嘗試添加該值的位置。這種情況發生的唯一地方就是控制器,您可以在其中完全訪問分配給ViewData的值。例如,如果您將tObj的值分配給ViewBag,則嘗試加載ViewData,並與tObj連接。對不起,浪費你的時間,夥計們,我學到了一些東西。