我觉得我的问题与这个问题很接近,但我想对这样的代码应该放在哪里进行更一般的讨论。Asp.Net MVC SelectList 重构问题? https://stackoverflow.com/questions/2149855/asp-net-mvc-selectlist-refactoring-question
我目前直接在实体模型上创建选择列表,如下所示。
public SelectList taskDeadlineTime
{
get { return new SelectList(TimeDictionary, "Value", "Key", this.getDeadlineTime()); }
}
这感觉有点不对劲,就好像我正在模型中执行视图工作一样。
然而,这确实意味着我可以获取该属性,并且我的选择列表就在那里。
现在,我应该将这个逻辑放入我的控制器(需要编写更多代码)或视图中(感觉错误且混乱),还是只是以不同的方式进行操作。
我现在看这个的原因是因为我正在比较同一对象实体的两个副本,并且将选择列表作为 getter 的一部分直接意味着它不起作用。我知道我可以修改这个比较来处理这个问题,但在模型中做一些可视化的事情感觉是错误的(除非选择列表的准备是模型中正确的事情)
我通常把它放到视图中。
视图模型:
public IEnumerable<Foo> TaskDeadlineTimes { get; set; }
View:
<%= Html.DropDownListFor(
x => x.SelectedValue,
new SelectList(Model.TaskDeadlineTimes, "Value", "Key")
) %>
控制器负责使用存储库设置此属性值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)