我应该使用HtmlHelper还是滚动我自己的控件?

时间:2008-11-25 16:16:52

标签: asp.net-mvc

我刚开始学习ASP.NET MVC,我遇到了一个问题。我正在尝试确定是否应该使用HtmlHelper来创建客户端控件,或者我是否应该使用自己的控件。我的直觉只是倾向于自己滚动,因为它让我完全控制 - 并使用jQuery来装饰和添加交叉浏览器功能。但后来我可以看到使用HtmlHelper进行各种复杂控制的好处,这些控件可能涉及分页等。

我正在寻找有关何时使用HtmlHelper更好的经验,以及何时最好自己动手。

4 个答案:

答案 0 :(得分:3)

他们添加到HtmlHelper的次数越多,我自己就会越多地使用它们。

看一下ScottGu的这些帖子: MVC Preview 5MVC Beta

如果您不使用输入框的HtmlHelper版本,则无法获得良好的免费验证。

另外,我不确定是什么阻止你用你需要的任何东西来装饰HtmlHelper控件以使它们可用于jQuery。

您可以使用htmlAttributes重载添加所需的任何属性,如下所示:

<%= Html.TextBox("LastName", ViewData.Model.LastName, new { @class = "required" })%>

我所谈论的有趣部分是你在那里看到的匿名对象(新{@class =“required”})。

你可以在你需要的地方放置任何东西,它会被打到控件的属性部分。

祝你好运!

答案 1 :(得分:2)

对于简单的案例来说,滚动自己很容易,但是你希望它们变得越“神奇”越难。

幸运的是,你可以按照自己的方式建立。

但是,提供的HtmlHelper控件非常广泛。它们将提供您需要的大部分内容。请注意过载,因为很容易意外地为您的呼叫使用错误的过载。

答案 2 :(得分:1)

你需要问自己的真正问题是,你是否需要完全控制,你是否需要一个可以在最快的时间内完成工作的工作控制(这并不意味着你必须牺牲质量)。 / p>

如果速度是一个问题,请使用HtmlHelper,如果你想在控制区玩,那么就自己动手。如果您不确定,请使用HtmlHelper并保存自制的控件,以便进行业余时间实验。

答案 3 :(得分:0)

我为HTML创建了一个流畅的界面,我决定分享它here。也许你会发现它是一个很好的选择。我还写了一篇关于它的blog post

这是一个预告片:

<%=this.TextBox(x => x.FirstName).Class("required").Label("First Name:")%>
<%=this.CheckBox("enabled").LabelAfter("Enabled").Title("Click to enable.").Styles(vertical_align => "middle")%>

欢迎批评和贡献。