ViewData 字符串中的 ViewData
ViewData inside of ViewData string
我正在动态加载 table,但行数未知。每行(实际上是每个单元格)都从数据库中加载并连接成一个字符串:
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 值。我想这是因为预处理器正在做 once-over 而不是 twice-over;这是为了写入,它正确呈现字符串值,但不处理结果字符串(注意:标记显示正确)。这可能是 Mono 固有的,也可能是因为在视图中,我使用的是 HTML Raw:
@Html.Raw(@ViewData["tableItems"])
我意识到像这样在控制器中生成标记并不是最佳做法,但这正是我正在使用的方法。是否有人对如何让字符串中的 ViewData 呈现为值(例如,品牌名称)而不是 "ViewData[...]" 有任何想法?不过,我们非常欢迎其他方法(因为我是 MVC 的新手),如果另一种方法是解决方案,我会礼貌地询问详细信息。
谢谢
我觉得很愚蠢...我会删除这个问题,但它实际上可能对 MVC 新手有所帮助。如果有人有类似的问题,请记住您试图在何处增加价值。唯一会发生这种情况的地方是在控制器中,您可以在其中完全访问分配给 ViewData 的值。例如,如果您将 tObj 的值分配给 ViewBag,然后尝试加载 ViewData,只需与 tObj 连接即可。对不起,浪费你们的时间,伙计们,我学到了一些东西。
我正在动态加载 table,但行数未知。每行(实际上是每个单元格)都从数据库中加载并连接成一个字符串:
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 值。我想这是因为预处理器正在做 once-over 而不是 twice-over;这是为了写入,它正确呈现字符串值,但不处理结果字符串(注意:标记显示正确)。这可能是 Mono 固有的,也可能是因为在视图中,我使用的是 HTML Raw:
@Html.Raw(@ViewData["tableItems"])
我意识到像这样在控制器中生成标记并不是最佳做法,但这正是我正在使用的方法。是否有人对如何让字符串中的 ViewData 呈现为值(例如,品牌名称)而不是 "ViewData[...]" 有任何想法?不过,我们非常欢迎其他方法(因为我是 MVC 的新手),如果另一种方法是解决方案,我会礼貌地询问详细信息。
谢谢
我觉得很愚蠢...我会删除这个问题,但它实际上可能对 MVC 新手有所帮助。如果有人有类似的问题,请记住您试图在何处增加价值。唯一会发生这种情况的地方是在控制器中,您可以在其中完全访问分配给 ViewData 的值。例如,如果您将 tObj 的值分配给 ViewBag,然后尝试加载 ViewData,只需与 tObj 连接即可。对不起,浪费你们的时间,伙计们,我学到了一些东西。