qq_42681194
qq_42681194
采纳率100%
2021-01-27 12:35 阅读 16

使用Ajax.ActionLink,不是将结果放入div标签中,而是重新加载网页。怎么办?

5

问题:MVC中使用Ajax.ActionLink后,不是将结果放入div标签中,而是重新加载网页,并将数据结果提供给其他空白网页的顶部。

 

一、程序代码:

1、布局视图中:

2、Index视图中:

 

二、jquery.unobtrusive-ajax.min.js加载

1、脚本已添加:

2、BundleConfig已修改

3、_Layout.cshtml布局视图中已添加@Scripts.Render("~/bundles/jqueryajax")

三、运行情况

以上完成后问题仍未解决!运行如下:

点击click me之后,本来是要替换右上角的标签,可实际情况如下图:

内容是由局部视图反馈的。可以看到地址栏中已经不是原网页了。

 

此前@Scripts.Render("~/bundles/jqueryajax")加到Index视图,也不能解决。

试着添加了

<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>

<script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

也不能解决。

 

请教大神帮忙!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

16条回答 默认 最新

  • 已采纳
    bosaidongmomo bosaidongmomo 2021-01-27 15:42

    你jquery导入有问题

    点赞 1 评论 复制链接分享
  • zt13502162671 zt13502162671 2021-01-27 13:50

    我猜是和前端没有问题的,估计是你后端的问题了

    //比如这个控制器
    public class HomeController : Controller{
        //这个方法获得值
       public ActionResult GetValue()
          {
                return JsonResult(new{
                    a=1
                });
         }
    //这个方法会直接跳转页面的
       public ActionResult Index()
          {
                return View()
         }
    }
    点赞 1 评论 复制链接分享
  • qq_37026254 白日有梦 2021-01-27 14:11

    参考一下这个,看有没有帮助  https://bbs.csdn.net/topics/390742477

    点赞 1 评论 复制链接分享
  • bosaidongmomo bosaidongmomo 2021-01-27 13:12

    右键点一下检查元素  或者F12 看看浏览器有没有什么样式没加载进来

    点赞 评论 复制链接分享
  • zt13502162671 zt13502162671 2021-01-27 13:53

    https://www.cnblogs.com/zzgblog/p/5454025.html

    你可以到这里面看下,onsuccess这个方法应该是用的方法

    而且为什么不直接用<script></script>

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 13:54

    初始页面HTML和样式

    第二个页面

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 14:07

    @zt13502162671

    你发的链接里是这样说的:

    它指出生成路径只是在原路径后面添加参数。而我的代码生成了另一个路径,见上文

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 14:15

    网上说是问题出在~/Scripts/jquery.unobtrusive-ajax.min.js加载上,可是我把他们的方法都试了,也不起作用。

    在Web.Config中也加了<add key="UnobtrusiveJavaScriptEnabled" value="true" />

     

    点赞 评论 复制链接分享
  • bosaidongmomo bosaidongmomo 2021-01-27 14:27

    控制台有5个报错

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 15:12

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 15:14

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 15:21

    是不是这几个问题造成的,有可能是jquery中的问题吧,怎么解决呀?

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 15:23

    这是咋回事?

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 15:56

    处理好了,在<head>中添加了

    <script type="text/javascript" src="~/Scripts/jquery-3.4.1.js"></script>
    <script type="text/javascript" src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>

    之前用 @Scripts.Render("~/bundles/jquery")
                @Scripts.Render("~/bundles/jqueryajax")

    有问题。

    但是又出现了新的问题,局部视图加载了两次:

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 16:10

    这里显示正常,只有一遍

     

    这里就有问题了,出现了两遍

    点赞 评论 复制链接分享
  • qq_42681194 qq_42681194 2021-01-27 16:25

    对了,是设置的问题。InsertionMode = InsertionMode.InsertAfter,应改为InsertionMode.Replace

    谢谢!

    点赞 评论 复制链接分享

相关推荐