【发布时间】:2012-10-19 21:34:38
【问题描述】:
我有一组包含输入元素的 HTML 页面。我正在将它们转换为MVC Views。
考虑代码的性能和清洁度。正确的做法是什么,
将表单处理为已发布的 FormCollection,或
创建强类型视图以从模型中获取输入值。
【问题讨论】:
标签: asp.net-mvc
我有一组包含输入元素的 HTML 页面。我正在将它们转换为MVC Views。
考虑代码的性能和清洁度。正确的做法是什么,
将表单处理为已发布的 FormCollection,或
创建强类型视图以从模型中获取输入值。
【问题讨论】:
标签: asp.net-mvc
您可以使用 TextBoxFor 的重载来设置/覆盖输入元素属性:
@Html.TextBoxFor(m => m.Name, new { @Value = "0", readonly="readonly" @class="cssClass"})
【讨论】:
这实际上是一个好问题..我不知道是谁投了反对票...在我看来,严格的视图模型传播者太多了。
在与 MVC 合作了一段时间后,我的观点是,对于非常简单的事情,@Html 助手工作得很好......但是它们导致了一种思考网页/服务器交互的方式,从长远来看,这是有限的,特别是对于更复杂的用途。它使您可以严重依赖不显眼的验证,而不必了解验证在客户端上的工作原理。这对入门级程序员来说非常有用...就像我曾经一样...但是至少不了解 jquery 验证库最终会妨碍您.进行任何严肃的 Web/Web 应用程序开发,其中验证比检查是否需要值更复杂变得更加困难。此外,如果您更新它们,您依赖 Microsoft 来保持他们的验证库与 jquery 验证库同步(我遇到了这个问题)。
此外,您还需要考虑如果您正在使用任何前端库,以及它们中的任何一个是否不能很好地与这些帮助程序的输出配合使用(引导程序是一个值得注意的)。话虽这么说,表单集合更快,限制更少......使用它和纯验证库将更容易,更具表现力......让您编写任何您想要的代码。毕竟..在服务器端编写 if(!String.IsNullorEmpty()) 或除客户端之外您需要的任何类型的验证有多难。
【讨论】: