我对 MVC 比较陌生。我试图只在页面上显示远程 SQL Server 表的内容。它是只读的,我在网上找到的几乎所有东西都在使用实体框架或类似的东西,这对我所追求的东西来说太过分了。我只需要将表中的所有行打印到视图中。
所以我的问题是:
- 我是否应该将 sqlconn 和所有内容破解到我希望将数据打印到的视图中?
- 或者我应该在该视图的控制器中添加 sql 吗?
- 创建一个模型并以某种方式将数据返回到视图中?
我知道第 3 步是“正确”的方法,但是我正在寻找简单快捷的方法。:)
谢谢大家!
我对 MVC 比较陌生。我试图只在页面上显示远程 SQL Server 表的内容。它是只读的,我在网上找到的几乎所有东西都在使用实体框架或类似的东西,这对我所追求的东西来说太过分了。我只需要将表中的所有行打印到视图中。
所以我的问题是:
我知道第 3 步是“正确”的方法,但是我正在寻找简单快捷的方法。:)
谢谢大家!
你说 EF 是矫枉过正,但这是最简单的方法。也许使用 Linq to SQL,因为它更轻量级。这就是它的全部:
@Html.DisplayForModel()
这是一个简单的例子。请注意,返回数据库实体类被认为是不好的做法,您应该首先将它们映射/自动映射到视图模型类型类。
家庭控制器
public ActionResult Index()
{
MyEntityModel[] items = MyDatabaseContext.GetAllRows();
return View(items);
}
主页/索引视图
@model IEnumerable<MyEntityModel>
@foreach (MyEntityModel item in Model)
{
@Html.DisplayFor(m => item)
}
如果没有 EF / L2S,它几乎同样简单,但您必须为数据库记录创建自己的实体/包装类并手动填充它们。
还有用于 MVC 的脚手架项目将生成存储库和控制器类,以及 Razor 视图。例如,参见NuGet 上的 MVC 脚手架。
一旦您习惯了强迫自己将实体框架用于您的“小型”应用程序,那么只有到那时您才会真正理解这是最简单的方法。
当然,如果您来自记忆 ADO.NET 数据集/数据表/数据读取器等的背景。那么请确保您有带有“固定”操作的项目,您可以移植和修改它,但它确实只是旧的并且花费了您更多的时间在长跑。
拥有 View 和 Controller 的 SOC 很关键,但是 Models 文件夹不需要使用,如果你愿意,你可以不用它来连接东西,只要注意你的“模型”在哪里,遵守 SOLID 原则等。