gpt4 book ai didi

c# - Html.DisplayFor 不适用于盒装值

转载 作者:太空宇宙 更新时间:2023-11-03 15:51:34 25 4
gpt4 key购买 nike

我有一个 MVC4 razor View ,我将在其中使用元数据的反射来显示数据表,以在运行时动态构建列。 @Html.DisplayFor 不会出现 int 列,但会出现 string、bool 等。使用 @Html.TextboxFor 或只是将值写入页面时,所有列似乎都会出现。 Visual Studio 在调试器中显示类型为 object{int} 我假设这是因为装箱。我的猜测是 DisplayFor 锁定的是对象 {int} 而不是 int 类型。如果可能的话,是否可以在不为 object{int} 创建新的 DisplayFor 模板的情况下完成这项工作?

@foreach (var item in words)
{
<tr>
@foreach (var prop in wordMeta.GetMetaProperties())
{
dynamic val = prop.GetInstanceValue(item);
<td>@Html.DisplayFor(a => val)</td>
}
</tr>
}

最佳答案

如果您只想显示值而不需要任何强绑定(bind),则只需使用Raw 模板。

dynamic val = prop.GetInstanceValue(item);
<td>@Html.Raw(val)</td>

这适用于所有数据类型。希望对您有所帮助。

关于c# - Html.DisplayFor 不适用于盒装值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com