我正在動態加載一個表,並且有未知數量的行。每行(每個細胞,實際上)從數據庫加載並連接成一個字符串: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的新手),如果另一種方法是解決方案,我會禮貌地詢問細節。
謝謝