示例演示一个链接,点击后利用Ajax更新特定id的标签中的内容
首先在_Layout.cshtml中加入js
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
Web.config中设置
<appSettings> <add key="webpages:Version" value="1.0.0.0"/> <add key="ClientValidationEnabled" value="true"/> <add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings>
Razor中的内容包括如下
<div id="ajaxLoading">请稍后,数据加载ing........</div> <div id="ajaxUpdate" > </div>
上面ajaxLoading标签中的内容用于调用ajax的过程中显示,增加客户体验
ajaxUpdate标签中的内容用于调用完ajax后更新内容
@Ajax.ActionLink("一个ajax链接",
"AjaxActionName",
"AjaxControllerName",
new { routeValues = 1 },
new AjaxOptions { UpdateTargetId = "ajaxUpdate",
HttpMethod = "POST",
InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace,
LoadingElementId = "ajaxLoading" })
上面AjaxOptions参数中分别设置要更新的内容块id为ajaxUpdate,和更新时显示的加载提示块ajaxLoading
记得你的Controller中的Action应该返回一个分部视图
[HttpPost] public ActionResult AjaxActionName(int routeValues) { //do something... return PartialView(); }