ASP.NET MVC中的ASP.NET控件和Html.helpers有什么区别?

时间:2011-01-30 00:18:28

标签: asp.net-mvc-2 controls asp.net-3.5

我对C#,asp.net和asp.net mvc完全不熟悉。我刚开始尝试。 所以这是我的问题:ASP.NET MVC Html.helpers和ASP.NET控件之间有什么区别?我知道它们都可以用来在页面中创建表单,但有什么区别?我的意思是,我可以在我的MVC项目中使用ASP.NET控件,那么使用Html.helpers有什么意义呢?如果有人解释Html标签的差异,那将是很好的。 那么,当我应该使用ASP.NET Controlls时,何时应该使用ASP.NET MVC,何时应该使用Html标签? 顺便说一句,我在Visual Web Developer 2008 Express中使用ASP.NET MVC2。 抱歉我的英文不好!

2 个答案:

答案 0 :(得分:1)

差异很大,基本上HTML Helper会在服务器推送回客户端时转换为HTML。

MVC中没有控件(您正在考虑Web表单),但无论您是否喜欢,这都是个人偏好。这些表单可以很容易地创建复杂的HTML结构,但是它们的渲染方式有很多“魔术”,MVC可以让你完全控制。

一旦你开始更多地使用MVC,你会欣赏灵活性,而不是错过控制一点。另外,很多开源软件都会给你强大的“助手”

答案 1 :(得分:1)

添加到Mark的答案:虽然ASP.NET控件和HtmlHelpers都发出HTML,但这就是相似之处的结束。

ASP.NET控件非常繁重。他们中的许多人在回发中保持自己的状态,以给出您正在编写有状态的Windows窗体应用程序的错觉。这些控件具有奇怪且受损的ID,在“viewstate”隐藏表单字段中添加许多字节,并且通常难以控制标记和CSS样式。

HtmlHelpers以可自定义的方式呈现HTML,因为您可以控制发出的HTML,理想情况是没有任何状态信息乱丢标记。您可以控制ID,样式和所有内容。但是你失去了控件给你的自动状态管理。