我有一个非常基本的web应用程序,显示表格的内容。用户可以通过点击链接来改变一些参数。 为简化起见,我们只考虑一个简单的例子,即用于排序行的列的名称。MVC视图直接与模型交互 - 好还是坏?
用户可以单击列或从右侧栏选择列的名称以更改排序。 我使用<option>
元素来显示可用列名称的列表。
从Model
对象直接取这些名字是正确的,还是我应该以某种方式从Controller
传递它们?这是代码现在
<select>
@{
// get list of all properties names
List<string> EtlProceduresNames = (((new MIPortal.Models.EtlProcedure()).GetType().GetProperties()).Select(item => item.Name)).ToList();
// display an option item for each property name
foreach (string EtlProceduresName in EtlProceduresNames) {
<option [email protected] >@Html.DisplayName(EtlProceduresName)</option>
}
}
</select>
这样,View
与Model
直接交互。这是一个概念错误吗?我是否应该将该代码放在Controller
上,然后将名称列表存储在ViewBag
对象上?
你不想打破观念mvc模式的所有逻辑都会在控制器中存储它,并将模型传递到视图中,网络中有很多示例。 – DarkVision