我试图像这样显示
var value = "Kartheek@gmail.com"
@Html.DisplayName(value)
结果是:仅限com。
为什么呢?在这种情况下必须使用什么
我在这里解释更多
我的目的是用网格显示非常通用的内容。
public class Grid
{
private Type type { get; set; }
public Grid(IEnumerable datasource)
{
if (datasource == null)
{
throw new ArgumentNullException("datasource");
}
this.type = datasource.GetType().GetGenericArguments().Single();
this.Data = datasource;
}
public IEnumerable Data { get; set; }
public IEnumerable<System.Reflection.PropertyInfo> Props
{
get
{
return this.type.GetProperties().AsEnumerable();
}
}
}
这是我的网格c#类。我正在将值分配给Grid.data和viewbag我发送网格数据进行查看然后我在部分视图中使用它
这里是我的部分视图代码
@if (Model != null)
{
<table style="width: 100%">
<thead>
<tr>
@foreach (var col in Model.Props)
{
<th>@Html.Label(col.Name)</th>
}
</tr>
</thead>
<tbody>
@foreach (var item in Model.Data)
{
<tr>
@foreach (var prop in Model.Props)
{
var val = prop.GetValue(item, null).ToString();
<td>@Html.DisplayName(val)</td>
}
</tr>
}
</tbody>
</table>
}
最后我得到了答案..但我不满意bcz还有另一个很好的解决方案。
var val = "kartheek@gmail.com";
<span>@val</span>