2012-10-19 26 views
0

我有一组包含输入元素的HTML页面。我正在将它们转换为MVC Views阅读表格发表数据与强类型查看

考虑性能&的代码的整洁。什么是进行正确的方法,

  1. 处理形式发布的FormCollection,或

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

回答

1

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

另一个优点可能是HTML辅助允许您设置的HTML标记的任何自定义属性。您可以通过传递字典或使用匿名类型(如下)来使用助手来完成此操作。

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

Source 1

Source 2

+0

嗨Emre,它帮助感谢。 – Abhijeet

1

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

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

迈克您好,感谢有没有在所有的输入元素转换为相应的MVC项目的任何显著的优势(性能)。为什么不应该使用formCollection进行简单的表单处理? – Abhijeet

+0

如果您只是从Request.Form中检索操作中的值,则MVC将跳过昂贵的反射来将表单元素绑定到模型。但你没有得到很好的模型绑定验证和可测性 –

1

其实,这是一个很好的question..I不知道是谁投了下去......还有在我看来,太多严格的视图模型的传道者。

在与MVC合作一段时间后,我的观点是,对于非常简单的事情来说,@Html助手很好地工作......但是他们导致了一种思考网页/服务器交互的方式,长期限制它特别是对于更复杂的用途。它可以让你在很大程度上依赖不引人注目的验证,而不必了解验证如何在客户端上运行。这对介绍性程序员来说很好......因为我曾经......但是至少不了解jQuery验证库会最终阻碍你。做任何认真的网络/网络应用程序开发,其中验证比检查是否需要值更复杂,变得更加粗糙。另外,如果你更新它们(我遇到了这个问题),你依靠微软保持它们的验证库与jquery验证库保持同步。

另外,你需要考虑,如果任何前端库使用的是什么,如果其中任何一个不与这些助手的输出(自举一个很明显的一个)很好地工作。这就是说,表单集合更快,更少限制...使用它和纯验证库将更容易和更具表现力......让你写任何你想要的代码。毕竟..如果在服务器端编写if(!String.IsNullorEmpty()),或者除了客户端需要任何类型的验证外,其实很难。

+0

好点....! – Abhijeet