我有一个遗留项目,我们正在慢慢迁移到 MVC,但有数百个 ADO.NET SQL DataSet 对象
我想将数据集保留在模型中并在 View 中访问它。这可能吗,或者有更好的方法吗?创建列表很困难,因为数据太多。我们最终会将 SQL 转换为实体,但不是现在。
示例:
型号:
string query = "SELECT * FROM dbo.manf";
SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
DataSet data = new DataSet();
adapter.Fill(data, "manf");
查看:
@foreach (DataRow data in manf.Tables["manf"].Rows)
{
@:manf["id"] + " " + manf["name"]);
}
最佳答案
您可以将任何想要的对象传递给 View ,因此您的 Controller 代码应如下所示:
public ViewResult Index()
{
....
return View(data);
}
你的观点:
@model System.Data.DataSet
@foreach (DataRow row in Model.Tables["manf"].Rows)
{
@(row["id"] + " " + row["name"])
}
传递的对象将存储在 View 通用基类的 Model 属性中,您可以使用 Model 来访问它。 @model定义了传递的对象的数据类型。
无论如何,任何代码都会被 HTML 编码,不需要 : 。如果您不想编码,则必须使用@Html.Raw(...)。
编辑:您只能将一个参数作为模型移动。如果您想使用多个对象,您可以定义一种新的数据类型(ViewModel),其中包含这两个对象的属性。对于窗口标题等简单对象,您可以使用 ViewBag。
ViewBag.Title = myTitle;
ViewBag 是 Controller 的动态属性,基本上是 ViewData 的包装器。
关于c# - 如何将 ADO.NET 数据集传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727107/