示例演示一个链接,点击后利用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(); }