【发布时间】:2016-11-13 11:53:37
【问题描述】:
有时我会将一些 C# 代码放在我的视图 (.cshtml) 中,而不是我的所有代码。例如,我有一个名为 LawCategory 的表,我这样做:
@{
var db = new Contracts.Models.DataContext();
var LawCat = db.LawCategory.ToList();
}
然后像这样使用它:
<div class="col-md-6">
<label>category:</label>
<select name="Type" id="Type" class="form-control">
<option value="0">All</option>
@foreach (var i in LawCat)
{
<option value="@i.ID" @(Request.QueryString["id"] == i.ID.ToString() ? "selected" : "")>@i.Name</option>
}
</select>
</div>
我想知道在视图中使用 datacontext 并连接到数据库而不是从控制器发送视图模型有什么缺点?
这样做真的会导致设置多连接到数据库吗? (实体框架)
【问题讨论】:
-
它的设计很糟糕。假设您可以仅使用具有 1000 行代码的单一方法编写整个应用程序,但您不应该这样做,因为它的设计很糟糕。视图应该只关注表示逻辑,与数据存储的交互应该在控制器中或调用堆栈的更下方完成。
-
基于意见。不适合 Stack Overflow。
标签: c# asp.net-mvc entity-framework datacontext