gpt4 book ai didi

c# - 如何将 ADO.NET 数据集传递给 View

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:15 25 4
gpt4 key购买 nike

我有一个遗留项目,我们正在慢慢转向 MVC,但是有数百个 ADO.NET SQL 数据集对象

我想将数据集保留在模型中并在 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/

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