一两个月前,当我开始做asp.net MVC的工作,我记得读它,不建议调用对象的方法,例如在视图:使用对象方法
<%: Html.ListBoxFor(m => Model.SelectedId, Model.SelectItems.ToSelectList()) %>
上面只是一个例子,而不是我使用的直接代码。我正在使用扩展方法将我的枚举变成ListBox绑定就绪的IEnumerable集合。我知道有人担心有人曾在文章中提过这件事,但我不记得那是什么。我实际上并没有编码它,但我现在这样做正在成为一种负担。我正在编写扩展方法将所有IEnumerable对象转换为SelectListItem集合,现在又转换为MultiSelectList对象。因此,我的视图模型正在以显示数据的“潜在”方式变得臃肿。我正在追踪4个新的数据:SelectListItem集合,SelectListValue对象,MultiSelectList控件,MultiSelectListValues集合,而不仅仅是可用选项的可枚举。
我不反对继续这样做,但我想记住为什么建议不要在视图上调用扩展方法,如果我使用强类型的完整/部分视图。我试图找到那篇文章和其他人喜欢它,但我不能。我希望我的记忆力比这更好,但希望有人知道这一点,并愿意与我分享!
提前致谢!
我有一种感觉,这只是一个“哲学”的理由,但我不记得了。我目前在控制器中处理所有这些数据,并在模型中为可能需要的每种方法创建新条目。我有一个扩展方法来转换的枚举,我打电话,而填充模型之前发送到任何地方。因为在视图中调用扩展名似乎比较容易,所以我想记住为什么我的大脑不停地向我大喊不要这么做。感谢您的提醒!太快太快......难以保持有时哈哈。 – SenseiHitokiri 2011-05-24 18:05:22
很高兴能帮到你! – Jay 2011-05-24 18:31:37