gpt4 book ai didi

c# - MVC View 直接与模型交互——好还是坏?

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:34 24 4
gpt4 key购买 nike

我有一个非常基本的 Web 应用程序来显示表格的内容。用户可以通过单击链接来更改某些参数。为简化起见,我们只考虑一个简单的例子,即用于对行进行排序的列的名称。

用户可以单击列或从右侧栏中选择列的名称来更改排序。我使用 <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 value=@EtlProceduresName >@Html.DisplayName(EtlProceduresName)</option>
}
}
</select>

这边View直接与 Model 互动.这是概念上的错误吗?我应该把那个代码放在 Controller 上吗?然后将名单存储在 ViewBag 上对象?

最佳答案

您不应该直接从 View 访问模型,因为这违反了 MVC 模式(关注点分离),您也不应该将这些数据放入 View 包中。

View bag 应该只用于传递最简单的东西,而不是当你有充满数据的对象时。

考虑使用 Viewmodel,这是编写 asp.net MVC 代码的最佳方式。

这样的例子-

http://www.codeproject.com/Articles/826417/Advantages-of-ViewModel-in-MVC-Model-View-Controll

关于c# - MVC View 直接与模型交互——好还是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32400565/

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