0

我有一组包含输入元素的 HTML 页面。我正在将它们转换为MVC Views.

考虑代码的性能和清洁度。正确的做法是什么,

  1. 处理表单作为发布的 FormCollection,或

  2. 创建强类型视图以从模型中获取输入值。

4

3 回答 3

1

您可以使用 TextBoxFor 的重载来设置/覆盖输入元素属性:

@Html.TextBoxFor(m => m.Name, new { @Value = "0", readonly="readonly" @class="cssClass"})
于 2012-10-19T21:48:15.553 回答
1

使用 HTML 助手的一个优点是它可以更好地在编译时检查您的视图(允许您在构建时而不是在运行时查找错误),并且在 Visual Studio 中编辑视图模板时还支持更丰富的智能感知。

另一个优点可能是 HTML 帮助程序允许您在 HTML 标记上设置任何自定义属性。您可以通过传入字典或使用类似以下的匿名类型来使用帮助程序来做到这一点。

@Html.TextArea("FirstName", Model.FirstName, new { parameter = "value" });

来源 1

来源 2

于 2012-10-19T22:23:39.270 回答
1

这实际上是一个好问题..我不知道是谁投了反对票...在我看来,严格的视图模型传播者太多了。

在与 MVC 合作了一段时间后,我的观点是,对于非常简单的事情,@Html 助手工作得很好......但是它们导致了一种思考网页/服务器交互的方式,从长远来看这是有限的,尤其是对于更多复杂的用途。它使您可以严重依赖不显眼的验证,而不必了解验证在客户端上的工作原理。这对入门级程序员来说非常有用...就像我曾经一样...但是至少不了解 jquery 验证库最终会妨碍您. 进行任何严肃的 Web/Web 应用程序开发,其中验证比检查是否需要值更复杂,变得更加困难。此外,如果您更新它们,您还依赖 Microsoft 来保持他们的验证库与 jquery 验证库同步(我

此外,您需要考虑如果您正在使用任何前端库,以及它们中的任何一个是否不能很好地与这些帮助程序的输出配合使用(引导程序是一个值得注意的)。话虽这么说,表单集合更快,限制更少......使用它和纯验证库将更容易,更具表现力......让您编写任何您想要的代码。毕竟..在服务器端编写 if(!String.IsNullorEmpty()) 或除客户端之外您需要的任何类型的验证有多难。

于 2013-03-06T23:37:58.273 回答