阅读表单发布数据与强类型视图

时间:2012-10-19 21:34:39

标签: asp.net-mvc

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

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

  1. 将表单作为已发布的FormCollection或

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

3 个答案:

答案 0 :(得分:1)

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

@Html.TextBoxFor(m => m.Name, new { @Value = "0", readonly="readonly" @class="cssClass"})

答案 1 :(得分:1)

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

另一个优点可能是HTML帮助程序允许您在HTML标记上设置任何自定义属性。您可以通过传入字典或使用匿名类型(如下面的代码)来使用帮助程序执行此操作。

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

Source 1

Source 2

答案 2 :(得分:1)

这实际上是一个很好的问题。我不知道是谁投了票......在我看来,有太多严格的观点模型布道者。

在与MVC合作了一段时间之后,我的观点是,对于非常简单的事情,@ Html帮助程序工作得非常好......但是它们导致了一种思考从长远来看限制的网页/服务器交互的方式,特别是对于更复杂的用途。它让你可以在很大程度上依赖于不显眼的验证,而无需了解验证如何在客户端上运行。这对于介绍性程序员来说非常好......就像我曾经...但是至少不了解jquery验证库会让你最终陷入困境。进行任何严肃的Web / Web应用程序开发,其中验证比检查是否需要值更复杂变得更加困难。此外,如果您更新它们,您依靠Microsoft来保持其验证库与jquery验证库同步(我遇到过这个问题)。

此外,您需要考虑使用的前端库是什么,如果它们中的任何一个与这些帮助器的输出不兼容(bootstrap是一个值得注意的)。这就是说表单集合更快,限制更少...使用它和纯验证库将更容易和更具表现力......让你编写你想要的任何代码。毕竟..在服务器端编写if(!String.IsNullorEmpty())或者除客户端之外还需要什么类型的验证。