我有一项使用 ADO.NET 为 MVC 工作的任务。我们可以使用普通的 ADO.NET 来完成这项工作吗?如果可能的话,请提供一些有用的链接。
问问题
115 次
1 回答
1
起初,如果不raw
使用诸如 DataSet 之类的数据容器,ADO.NET 是不可能的。
原因是从动作方法提供模型,从内部视图查询该模型具有不同的范围。视图在操作方法退出后访问模型。考虑以下代码示例:
public ActionResult SomeAdoNetAccess(int id, string name)
{
...
using(var command = CreateSampleCommand())
{
command.Parameters["@Id"].Value = id;
..
using(var reader = command.ExecuteReader())
{
return View(reader);
}
}
}
当视图试图访问阅读器时,阅读器已经被释放。所以需要某种容器。
对于其他事情,您可以将命令参数值作为操作参数传递,并使用 ViewState 将其他数据传递给视图,而无需使用类型化模型。这不是问题,但它需要更多的努力而不是常规模型。
于 2012-10-25T13:30:14.443 回答