在Asp.net MVC使用thickbox实现调用页面的Ajax更新2010-12-08 博客园 PM2004在MVC模式中,通常都是Controller处理请求并生成数据,选择一个合适的 View来显示结果给用户。虽然Asp.net MVC已经有非常丰富的ActionResult来满 足不同情况下的需求,但是有了Ajax的利器,我们希望有更流畅的交互方式。我 们希望能够在一个界面完成列表的显示,编辑或者新增,并完成刷新。借助 jQuery的一个扩展thickbox我们能够达到这个效果。本文的灵感来自于一篇博文:MVC AJAX Form with Ajax.BeginForm() andThickbox (http://geekswithblogs.net/michelotti/archive/2009/08/31/mvc-ajax- form-with-ajax.beginform-and-jquery-thickbox.aspx)和该文的差异在于thickbox中提交后,他更新的是thickbox中的内容,而不 是加载thickbox的页面(即thickbox后面的那个页面)。我演示的场景如下

点击“新建角色”①弹出一个新建的角色thickBox输入窗口②,填入相应的 信息后,将利用Ajax更新角色列表③。假设你已经非常了解Asp.net MVC了。这里我们不讨论MVC中的Model层,假设Model数据可以通过Service层获取。在这个例子里,我们需要3个View:RoleList.aspx,RoleNameList.ascx和 RoleCreate.ascx。后两个PartialView。RoleController需要处理以下几个请求:[get] RoleNameList():显示Role列表,返回RoleNameList.ascx这个 PartialView.[get] RoleCreate():显示Create的输入界面RoleCreate.ascx等待用户输入 相关的信息。[post]ReleCreate(Role role):处理Create的提交,并返回 RoleNameList.ascx。