Asp.net ViewModel:如何在列表视图中显示datatable中的值
我已经为自定义页面创建了viewmodel类。我有一个返回数据表的存储过程(ORM工具)。我不能改变这个程序。但我想显示视图列表上存储过程中的记录。如何在列表视图中显示数据表中的值?谢谢你的帮助 谢谢Asp.net ViewModel:如何在列表视图中显示datatable中的值,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我已经为自定义页面创建了viewmodel类。我有一个返回数据表的存储过程(ORM工具)。我不能改变这个程序。但我想显示视图列表上存储过程中的记录。如何在列表视图中显示数据表中的值?谢谢你的帮助 谢谢 public class CreateViewModel { [Required] public DateTime StartDate {get; set;} [Required] [StringLength(250, ErrorMessage =
public class CreateViewModel
{
[Required]
public DateTime StartDate {get; set;}
[Required]
[StringLength(250, ErrorMessage = "Details must be less than 250 characters")]
public string Details { get; set; }
}
这样做的主要方法是从datatable的每一行读取列值到视图模型实例中。这是常规的数据表访问方式。这应该在从控制器操作调用的服务层中完成 如果无法更改存储的进程,但未绑定到DataTable,则如果执行SqlCommand以返回SqlReader。然后,您可以使用以下代码访问数据(类似于):
var list=newlist();
while(reader.Read())
{
var模型=新的MyViewData();
model.Property=reader.GetString(reader.GetOrdinal(“ColumnName”);
//……等等。。
列表。添加(模型);
}
退货清单;
这将访问从存储过程返回的记录集
然后,可以将视图的模型属性设置为IEnumerable,然后可以使用foreach访问视图中模型上的每个实例
希望这有帮助。没问题。很高兴我能帮忙:-)
var list = new List<MyViewData>();
while(reader.Read())
{
var model = new MyViewData();
model.Property = reader.GetString(reader.GetOrdinal("ColumnName"));
// .. etc..
list.Add(model);
}
return list;