我越是深入了解MVC,我越喜欢它,并想想我是如何使用Web Forms :)
但是如果我想要封装一个控件,让我们说一个组合框,然后我会创建一个用户控件并添加这个组合框并声明属性,然后我可以删除它在任何页面上,如果我更改用户控件,则更改适用于站点中的所有实例,在Web表单中非常简单。
现在在MVC我已经了解到你可以通过扩展方法创建额外助手,这真的很酷,但我的目标是我希望它被Ajax化。
这就是我想要的:
另一个问题是在服务器上呈现的HTML帮助程序?或者它们是纯HTML,没有像服务器控件那样的服务器处理?
注意:我知道MVC已经有一个列表HTML Helper,但我以此为例。
提前感谢。
答案 0 :(得分:1)
HtmlHelper扩展方法在服务器上的View中执行。它们生成的结果HTML包含在发送到浏览器的页面中。
您无法使用HtmlHelper扩展方法创建传统的ASP.NET WebForms服务器控件,就像您描述的那样,“模拟Web窗体,如文本属性,选定值等......”如果您能够实现这样的使用ASP.NET MVC的事情,那么你应该首先在项目中使用ASP.NET WebForms。
我真的建议您选择“Pro ASP.NET MVC 1.0”的副本。这本书是由Rob Conery,Scott Hanselman,Phil Haack和Scott Guthrie编写的,并且在使用ASP.NET MVC构建应用程序/站点时,充满了大量关于“做什么和为什么”的解释。以及与ASP.NET WebForms和ASP.NET MVC之间的差异的直接比较。此外,本书的第一章是关于使用ASP.NET MVC构建功能齐全的应用程序的完整教程,而不是其他所有书籍演示的传统“Hello World”示例。
答案 1 :(得分:1)
你看过AjaxHelper类及它的扩展吗?这似乎就是你要找的东西。您可以查看AjaxExtensions.cs文件的源代码,然后按照相同的模式创建自己的AjaxHelper扩展。
是的,HtmlHelper(和AjaxHelper)函数通过服务器上执行的C#代码输出Html字符串。