Asp.net mvc 2 什么';ASP.NET MVC中ASP.NET控件和Html.helpers之间的区别是什么?

Asp.net mvc 2 什么';ASP.NET MVC中ASP.NET控件和Html.helpers之间的区别是什么?,asp.net-mvc-2,controls,asp.net-3.5,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控件,什么时候应该使用ASP.NET MVC,什么时候应该使用Html标记?

我对C#、asp.net和asp.net mvc完全陌生。我只是开始尝试。 所以我的问题是:ASP.NET MVC Html.helpers和ASP.NET控件之间有什么区别?我知道它们都可以用于在页面中创建表单,但有什么区别?我的意思是,我可以在我的MVC项目中使用ASP.NET控件,那么使用Html.helpers有什么意义呢?如果有人也能解释一下Html标签的区别,那就太好了。 那么,什么时候应该使用ASP.NET控件,什么时候应该使用ASP.NET MVC,什么时候应该使用Html标记? 顺便说一下,我正在VisualWebDeveloper2008Express中使用ASP.NETMVC2。
对不起,我的英语不好

差别很大,基本上,当HTML助手推回到客户端时,它会在服务器上转换为HTML

控件在MVC中不可用(您正在考虑web表单),但无论您是否喜欢,这都是个人的偏好。表单使得创建复杂的HTML结构变得很容易,但是在它们的呈现方式上有很多“魔力”,MVC给了你完全的控制


一旦你开始更多地使用MVC,你就会体会到它的灵活性,不会错过任何控制。此外,还有很多开源的东西可以给你提供强大的“助手”

来补充Mark的答案:尽管ASP.NET控件和HTMLHelper都发出HTML,但这就是相似之处的终结

ASP.NET控件非常繁重。它们中的许多都在回发过程中保持自己的状态,使人产生一种错觉,以为您正在编写一个有状态的Windows窗体应用程序。这些控件有奇怪的和损坏的ID,向“viewstate”隐藏的表单字段添加了许多字节,并且通常很难控制标记和CSS样式


HtmlHelpers以可定制的方式呈现HTML,这是一种轻量级的方式,因为您可以控制发出的HTML,理想情况下不会有任何状态信息散落在标记中。你控制身份证,样式,一切。但是,您将失去控件提供的自动状态管理。

Html帮助程序将保持代码整洁。最好不要在标记中运行任何
“server”
。我认为这也是唯一的区别,但现在我明白了,不是。谢谢你,马克,我了解了开源的事情。我不知道!我不知道他们是轻量级的。这真的很有帮助。谢谢。尽管ASP.NET MVC HTML帮助程序和ASP.NET Web表单控件之间存在差异,但它们不是都是服务器端控件吗?