ASP.NET MVC实践系列4-Ajax应用
2009-10-28 15:51
531 查看
ASP.NET MVC中支持Ajax的方式和webform中有些区别,没有了updatepanel,所以对于初学者来说在最开始应用时似乎没有在webform中简单,但实际使用上更为灵活而跟webform比较并没有增加多少复杂度。
一、ASP.NET MVC Ajax 的 Helpers
对于ASP.NET MVC中的Ajax的学习,需要重点了解Ajax.ActionLink()和Ajax.BeginForm()这两个Helper,Ajax是System.Web.Mvc.ViewPage中的属性,它返回的类型是AjaxHelper,而ASP.NET MVC中的View都是继承于System.Web.Mvc.ViewPage,所以在页面上能直接使用这两个Helper。
1、Ajax.ActionLink():向客户端输入一个链接地址,跟Html.ActionLink()很相似,当单击这个链接时可以异步调用Controller中的方法
Ajax.ActionLink()方法有许多重载,我们这里举例说明其中一个比较常用的重载:
public static string ActionLink(this AjaxHelper ajaxHelper, string linkText, string actionName, object routeValues, AjaxOptions ajaxOptions);
linkText:是显示在客户端的文本
actionName:是Action的名字,默认情况下我们会使用当前的Controller。
routeValues:将传入到Controller中方法的参数
ajaxOptions:配置Ajax的一些选项,看完下面的例子我们再详细讲解这个配置选项。
这里先举一个简单的例子:
View:
<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>
<%=Ajax.ActionLink("test","Hello",new{name="lfm"},new AjaxOptions{UpdateTargetId="results"}) %>
<div id="results">
</div>
虽然ASP.NET MVC 的sctrpts中已经有了Ajax的脚本,但使用之前仍然还要在页面中引用。Ajax.ActionLink("test","Hello",new{name="lfm"},new AjaxOptions{UpdateTargetId="results"}) 的意思是前端页面显示的文本为test,当点击test时会调用Controller中的Hello方法,参数为lfm,返回的内容会在id=results的标签中显示。
Controller:
Code
public ActionResult Search(string title)
{
NewsDataDataContext dc = new NewsDataDataContext();
return View("NewsList", dc.News.Where(n => n.Title.Contains(title)));
}
public ActionResult NewsShow()
{
return View();
}
这里需要注意的就是ajax的返回可以支持ActionResult,只要这个ActionResult为Partial类型的View即可正确显示
三、参考:
《Professional ASP.NET MVC 1.0》
《Pro ASP.NET MVC Framework》
四、源码
一、ASP.NET MVC Ajax 的 Helpers
对于ASP.NET MVC中的Ajax的学习,需要重点了解Ajax.ActionLink()和Ajax.BeginForm()这两个Helper,Ajax是System.Web.Mvc.ViewPage中的属性,它返回的类型是AjaxHelper,而ASP.NET MVC中的View都是继承于System.Web.Mvc.ViewPage,所以在页面上能直接使用这两个Helper。
1、Ajax.ActionLink():向客户端输入一个链接地址,跟Html.ActionLink()很相似,当单击这个链接时可以异步调用Controller中的方法
Ajax.ActionLink()方法有许多重载,我们这里举例说明其中一个比较常用的重载:
public static string ActionLink(this AjaxHelper ajaxHelper, string linkText, string actionName, object routeValues, AjaxOptions ajaxOptions);
linkText:是显示在客户端的文本
actionName:是Action的名字,默认情况下我们会使用当前的Controller。
routeValues:将传入到Controller中方法的参数
ajaxOptions:配置Ajax的一些选项,看完下面的例子我们再详细讲解这个配置选项。
这里先举一个简单的例子:
View:
<script src="<%= Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%= Url.Content("~/Scripts/MicrosoftMvcAjax.js") %>" type="text/javascript"></script>
<%=Ajax.ActionLink("test","Hello",new{name="lfm"},new AjaxOptions{UpdateTargetId="results"}) %>
<div id="results">
</div>
虽然ASP.NET MVC 的sctrpts中已经有了Ajax的脚本,但使用之前仍然还要在页面中引用。Ajax.ActionLink("test","Hello",new{name="lfm"},new AjaxOptions{UpdateTargetId="results"}) 的意思是前端页面显示的文本为test,当点击test时会调用Controller中的Hello方法,参数为lfm,返回的内容会在id=results的标签中显示。
Controller:
Code
public ActionResult Search(string title)
{
NewsDataDataContext dc = new NewsDataDataContext();
return View("NewsList", dc.News.Where(n => n.Title.Contains(title)));
}
public ActionResult NewsShow()
{
return View();
}
这里需要注意的就是ajax的返回可以支持ActionResult,只要这个ActionResult为Partial类型的View即可正确显示
三、参考:
《Professional ASP.NET MVC 1.0》
《Pro ASP.NET MVC Framework》
四、源码
相关文章推荐
- ASP.NET MVC实践系列2-简单应用
- JQuery和Ajax在ASP.NET MVC中的基本应用
- Ajax为主的应用不需要ASP.NET MVC
- ASP.NET Web API实践系列06, 在ASP.NET MVC 4 基础上增加使用ASP.NET WEB API
- 关于Asp.net mvc 2 Ajax thiskbox应用
- 使用Asp.net MVC, Jquery, Jquery UI构建基于Ajax的RIA应用.
- ASP.NET MVC实践系列10-单元测试
- ASP.NET MVC实践系列11-FCKEditor和CKEditor的使用
- Asp.net mvc +Ajax +Extjs+NHibernate 系列之单元测试
- ASP.NET MVC框架开发系列课程(8):AJAX
- MSDN Webcast 系列课程之《ASP.NET MVC 3 开发实践系列课程》
- ASP.NET MVC实践系列7-Grid实现(下-利用Contrib实现)
- Spring.NET企业架构实践之 JQuery + FlexiGrid + ASP.NET MVC + NVelocity + WCF + LINQ + NHibernate 综合应用
- 异步上传文件插件AjaxFileUploader在Asp.net MVC中应用
- ASP.NET MVC框架开发系列课程(8):AJAX
- Asp.Net MVC && SmartDAL项目实践系列
- ASP.NET开发实践系列课程之Web应用的安全攻防之网页木马
- ASP.NET MVC实践系列9-filter原理与实践
- ASP.NET MVC实践系列3-服务器端数据验证
- Asp.net mvc +Ajax +Extjs+NHibernate 系列之数据库DAO,Bussiness,Service三层