我对MVC比较陌生。我试图只在页面上显示远程SQL Server表的内容。它是READ ONLY,我在网上找到的几乎所有内容都是利用实体框架或类似的东西,这对我所追求的东西来说太过分了。我只需要将表中的所有行打印到视图中。
所以我的问题是:
我知道第3步是'正确'的方法,但我正在寻找简单快捷的方法。 :)
谢谢大家!
答案 0 :(得分:5)
你说EF太过分了,但这是最简单的方法。也许使用Linq to SQL,因为它更轻巧。这就是它的全部内容:
@Html.DisplayForModel()
这是一个简单的例子。请注意,返回数据库实体类被认为是不好的做法,您应该首先将它们映射/自动化为View Model类型。
家庭控制器
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视图。请参阅示例MVC Scaffolding on NuGet。
答案 1 :(得分:1)
一旦你习惯了强迫自己使用Entity Framework来处理你的“小”应用程序,那么你才能真正理解这是最简单的方法。
当然,如果您来自记忆的ADO.NET数据集/数据表/数据集等的背景,那么请确保您拥有可以移植和修改的“预制”操作的项目,但它确实只是旧的并且花费更多从长远来看。
拥有View和Controller的SOC很关键,但不需要使用Models文件夹,如果你愿意,你可以不用它来连接,只需注意你的“模型”在哪里并遵守SOLID原则等等。