问题: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>
也不能解决。
请教大神帮忙!
你jquery导入有问题
右键点一下检查元素 或者F12 看看浏览器有没有什么样式没加载进来
我猜是和前端没有问题的,估计是你后端的问题了
//比如这个控制器
public class HomeController : Controller{
//这个方法获得值
public ActionResult GetValue()
{
return JsonResult(new{
a=1
});
}
//这个方法会直接跳转页面的
public ActionResult Index()
{
return View()
}
}
https://www.cnblogs.com/zzgblog/p/5454025.html
你可以到这里面看下,onsuccess这个方法应该是用的方法
而且为什么不直接用<script></script>
初始页面HTML和样式
第二个页面
@zt13502162671
你发的链接里是这样说的:
它指出生成路径只是在原路径后面添加参数。而我的代码生成了另一个路径,见上文
参考一下这个,看有没有帮助 https://bbs.csdn.net/topics/390742477
网上说是问题出在~/Scripts/jquery.unobtrusive-ajax.min.js加载上,可是我把他们的方法都试了,也不起作用。
在Web.Config中也加了<add key="UnobtrusiveJavaScriptEnabled" value="true" />
控制台有5个报错
是不是这几个问题造成的,有可能是jquery中的问题吧,怎么解决呀?
这是咋回事?
处理好了,在<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")
有问题。
但是又出现了新的问题,局部视图加载了两次:
这里显示正常,只有一遍
这里就有问题了,出现了两遍
对了,是设置的问题。InsertionMode = InsertionMode.InsertAfter,应改为InsertionMode.Replace
谢谢!