使用ajax局部更新Razor页面

Razor功能非常强大,但是本身并不能做到无刷新,所以需要配合ajax使用

本文就做一个简单例子,实现Razor配合ajax做到局部刷新。

首先,我们创建一个MVC项目

让我们创建一个简单的Controller Book

然后对其添加一个视图,并且添加上一些简单的Html代码

 1 @{
 2     ViewBag.Title = "Index";
 3     Layout = null;
 4 }
 5 <!DOCTYPE html>
 6 <html>
 7 <head>
 8     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 9     <meta charset="utf-8" />
10     <meta name="viewport" content="width=device-width, initial-scale=1.0">
11 </head>
12 <body>
13     <h2>Index</h2>
14     @Html.ActionLink("点击我", "Part","Book");
15     <div id="partial" ></div>
16
17     @Scripts.Render("~/bundles/jquery")
18     <script type="text/javascript">
19         $("a").click(function () {
20             $.ajax({
21                 url: "/Test/Book/Part/1",
22                 success: function (result) {
23                     console.log(result);
24                     $("#partial").html(result);
25                 },
26                 error: function (msg) {
27                     console.log(msg);
28                 }
29             })
30             return false;
31         });
32
33     </script>
34 </body>
35 </html>

这里我添加了一个<div>,并且给了个id="partial",再我点击@Html.ActionLink时会触发javascript里的方法,使用ajax去访问/Test/Book/Part/1这个路径,请求成功以后会在<div>里构建我请求的Html,这其实就是局部刷新的原理

这是Part的代码,然后我们给Part也添加一个视图

Part的代码可以非常简单,然后我们开启我们的项目

我们不断点击 按钮“点击我”

页面就会不停的发生变化。

这里需要注意,在使用AJAX请求时,Url一定要写完整,比如我的Controller在Area下的Book文件夹下名为Test,Action为Part,那么Url则是 /Test/Book/Part,不能缺少/Test,否则就会出现以下错误

可以看到,如果Url没有写全的话,Action返回的View其实是错误的路径。

本文就介绍到这。谢谢各位!

时间: 2024-10-19 01:06:47

使用ajax局部更新Razor页面的相关文章

ASP.Net Core使用Ajax局部更新

由于目前ASP.NET Core中没有提供Ajax帮助器,所以参照 上一篇帖文,使用data-ajax-*属性来使用jQuery Unobtrusive Ajax功能实现HTML的局部页面元素更新. 在.cshtml文件中,根据文章分页,分别生成各页链接: <div id="content"> @if (Model.ContentArray.Count() > 1) { @Html.Raw(Model.ContentArray[0]) } else { @Html.R

ajax局部更新

js //点击启用 $(".status").on("click",function(){ var id = $(this).attr("statusId"); var customName = $(this).attr("customName"); var customStatus = $(this).attr("value"); var statusId = $(this).attr("sta

Jquery Ajax 页面局部更新

Ajax 是一个异步过程,页面中的一部分代码发出一个网络请求,在里面设置一个回调函数,如果网络请求得到返回,那么执行回调函数.在回调函数中的上下文和时间触发的上下文会有所不同,在jquery中的应用需求大多数时候是这样的.比如我点击了一个按钮,这个按钮是一个 tr 中的 td 中的内容,我可以通过这个点击时间确定当前行的任何属性,或者确定当前也面中的任何一个属性,只要这个页面的布局是又某种可控的过滤的话.需要实用到this关键字.还有就是 find() 方法.比如this.parent().fi

对于ajax更新的页面,如何实现离线浏览? 一则方案尝试。

背景 现代页面上越来越多的内容是通过ajax更新, 因为页面可以显示的更加快速, 局部更新, 同时可以实现页面内容的动态性, 增加页面的内容的丰富性. 但是如果将页面内容保存下来, 以备离线浏览器查看, 则由于ajax存在的原因, 直接使用保存的方法不能实现, 因为会有ajax访问禁用的报错. 对于非ajax页面, 页面上内容仅仅使用 链接组织资源的情况, 页面的内容是完整的,  则浏览器保存下来的内容是完整的, 则可以在本地使用离线版本浏览. 方案思路 分析现有页面使用ajax更新的 方法,

【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价

昨天把项目部署了一下,玩了玩,今天完善了一下购物车中修改商品数量就能局部更新相应的总价的功能,大家都知道这得用Ajax实现,我之前也没学Ajax,刚好借助这个小功能,去简单学习一下Ajax的知识. 1.问题的分析 先看一下页面中的情况:  功能如上,在没有Ajax之前,一般都是根据用户修改的值去找Action,然后返回新的jsp页面重新加载整个页面,完成数字的更新.但是有了Ajax技术后,我们可以利用Ajax技术局部刷新要改变的地方,而不是重新加载整个页面.首先看一下上图对应的jsp部分的代码:

创建基于ASP.NET core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新

本节主要介绍在上一节中通过搭建基架而创建的Razor页面,并做一些UI改变. 一.创建.删除.详细信息和编辑页面 1.双击Pages/Movies/Index.cshtml.cs文件,这是一个Razor页面模型: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Mvc; 6 us

Ajax方法实现登录页面

Note: ajax技术 不用刷新页面,做局部刷新不用form表单,因为不需要提交,通过JQuery控制必须要有id如果要用ajax可以用JQuery也可以用js写,推荐JQuery 因为简单,直接引入JQuery包 js和JQuery是不能操作数据库的,如果需要处理数据库还需要用php语言 JQuery中不能直接嵌php代码,所以需要创建一个新的页面来写php代码JQuery里面就需要传递数据过去,提交到php页面处理 1.输入用户名,密码后点击登录.输入正确跳转页面,输入错误出现提示对话框

局部更新document(partial updates to documents)

就像在Updating a whole document中所说的一样,更新document的步骤就是检索--修改--插入整个document.然而使用update,就能局部更新,就像在一个请求里增加一个计数器一样. 以前说过document是不可变的--不能被修改,只能被替换,update也必须遵守这个规则.在外部看来是局部更新的,在内部,update依然执行了检索--修改--重新插入这个流程.不同的是这个过程是发生在shard中,因此避免了多次网络请求的开销,通过减少检索和重新插入的时间,降低

实现带有验证码的ajax局部刷新登录界面

现在的登录界面大多数都带有:验证码的功能+验证码局部刷新+ajax登录.用ajax登录的好处最明显就是速度快,URL地址没有变化.所有现在登录功能很少再用form表单post提交了,大多数都已经采用了ajax局部访问后台然后解析返回值并显示结果到界面上面.理论还是要拿来实践才能验证的,下面直接上代码. 运行界面: 1.验证码后台访问部分上一篇博客已经介绍多了,这里介绍如何利用img中src实现局部刷新验证码的功能. html部分: <p><label class="lbrigh