好的或坏的做法,在视图中使用常规html

时间:2009-01-28 20:46:04

标签: asp.net html asp.net-mvc

使用html很舒服,我觉得在我的视图中使用常规html更容易,例如,使用<input type="text" maxlength="30" name="firstname">而不是&lt;%= html.textbox(“firstname”)创建一个文本框%&gt ;。或<form method="post" name="myform">代替<% html.beginform() { %>

这被认为是不好的做法吗?我应该开始强迫自己使用助手等吗?如果我继续使用常规HTML,我会遇到麻烦吗?

正是我想知道的事情,因为我在网上看到的大多数例子和内容都使用了前面提到的所有助手和方法......

6 个答案:

答案 0 :(得分:3)

我在PHP中使用自定义表单助手来创建输入字段。对于快速的东西,它们很方便,但是当你需要在一个元素上做一些与众不同的事情(添加一些事件和javascript,嵌入一个内联样式,禁用它)时,辅助函数会受到妨碍。我更喜欢拥有真正的HTML,因为无论如何它都是最终的。

答案 1 :(得分:1)

我出于各种原因一直使用原始HTML,如果我需要从我的类中访问它们,只在我的标签上放置一个runat =“server”属性。

ASP.NET控件真的很棒但是过了一段时间后人们(或者也许只是我)通常会发现它们会妨碍你,特别是在高级场景中或者你正在做一些高级的javascript。我们甚至没有提到viewstate,它可以在一个中等大小的页面上轻松占用半兆字节(!),其中包含一些数据。您只需使用原始HTML控制您的页面即可。

所以这可能听起来有点尴尬,但在使用ASP.NET控件一段时间之后,我已经回归(主要)原始HTML。这有点像使用一些非常好的WYSIWYG编辑器,然后意识到用它实现高级任务实际上需要花费更多精力,例如,用记事本。

答案 2 :(得分:1)

直接编写HTML绝不是不好的做法。比较两者;自己编写,你必须按照你认为合适的方式写出HTML,当使用预制函数时,函数会根据需要为你生成HTML。我会说后者处于不良实践的边缘,这取决于你对元素的控制程度。显然有些是好的,但我发现这些功能的很大一部分只会导致代码膨胀和/或标记汤。

答案 3 :(得分:1)

这确实是一个务实的选择,但线索就是名字 - 他们不是什么都不称为'助手'。

  • 如果您正在进行简单的标记,请继续使用原始HTML。
  • 如果您正在做的事情可能会因为路由规则的重组而发生变化,那么请使用帮助程序,它将负责响应这些更改。一个很好的例子是'BeginForm'帮手。

像生活中的大多数事情一样,运用常识。

答案 4 :(得分:0)

Html助手将为您动态创建HTML帮助您。 如果您决定重命名控制器,Html.BeginForm会自动为您输出正确的actionurl(某些重载比其他重载更动态)。如果你对动作进行了硬编码,那么当然你需要做更多的代码更改。这适用于Htmlhelper以及Webform控件。他们更有活力。在许多情况下,他们只是为您节省了大量重复的HTML代码,请参阅mvc grid或gridview。

答案 5 :(得分:0)

当我第一次使用MVC时,我尝试使用Html Helpers甚至创建自己的帮助程序。但是,当我尝试在我的应用程序上使用JQuery / Ajax时,我倾向于使用越来越多的原始HTML。我不认为使用原始HTML是一种不好的做法。如果您想在客户端进行更多控制,那么原始HTML对我来说似乎更容易。