我目前正在使用ASP.NET MVC2开发一个新网站。我想用网站做的很多事情(从前端的角度来看)涉及AJAX-y型任务。
两个例子:
在这两种情况下,我都能够使用传统的Web表单事件处理程序等完成我想要完成的任务。不幸的是,使用ScriptManager违反了MVC的精神。似乎MVC阻止使用ASP.NET可用的许多控件。
所以,我的问题是:如何在不使用ScriptManager和使用事件处理程序的Web表单方法的情况下使用AJAX并进行AJAX调用?
答案 0 :(得分:2)
并不是说ScriptManager“违反了MVC的精神”,只是MVC框架的构建方式不同。
Web控件依赖于ASP.Net webforms构造,例如ViewState和Postbacks。这些在ASP.Net MVC中不存在,因此任何依赖它们的控件都将无法正常运行。但是,控件仍将呈现其HTML并运行其事件处理程序,因为每个.aspx页面在默认视图引擎编译时仍会经历页面生命周期。 (如果您使用自定义视图引擎来呈现您的HTML,它们根本无法工作!)
无论如何,大多数人依赖微软的ajax脚本(MicrosoftAjax.js,MicrosoftMvcAjax.js)或使用第三方库(如jQuery)来执行他们的ajax。如果您刚刚开始,我建议您前往main ASP.Net MVC site并查看他们的一些教程。 NerdDinner电子书是MVC的一个很好的开始,there is a chapter on using Microsoft's Ajax to do dynamic updates。