不明白为什么脚本中的Action会不执行

zheninchangjiang 2018-03-27 12:24:23
MVC中的脚本遇上的问题

http://localhost:2659/IIData/GetIIDataAjaxHandler?SubViewId=9
这个URL运行正常,但是下述的代码在执行
$.get('@Url.Action("GetIIDataAjaxHandler","IIData",new{SubViewId=9})',时直接跳转出script的执行;
为什么?如何才能更深一步的发现问题

<script>
$(function(){
setInterval(fetchData,3000);
});
function fetchData(){
$.get('@Url.Action("GetIIDataAjaxHandler","IIData",new{SubViewId=9})',function(result){
$.each(result,function(Id,data){
$("#" + data.Id).text(data.Value);
})
});
}
</script>
...全文
294 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
如果是 $.get 函数执行完毕了,然后你的 c# 执行了,那么你就需要使用一个 http 调试器来查看 http 下行的消息,查看 web 服务端给浏览器返回的 http 消息的内容。你得知道基本的 http 消息格式,知道它的原理,才能知道 200 OK 状态时返回什么样的数据,出错时返回什么状态,返回消息中什么是 Id 和什么是 data。
  • 打赏
  • 举报
回复
首先你要会使用 vs 调试脚本执行。通过调试,比如说起码是在 setInterval(fetchData,3000) 这行代码上设置断点就能中断并且通过监视窗口来查看 js 环境各种变量、进行计算。会抄代码不算是会开发,评判程序员开发能力是看调试能力而不看从网上抄代码的能力。 通过调试,你知道脚本执行了没有,执行的次序是什么样子的。通过脚本和 c# 代码的调试,才知道是先执行完 $.get 函数先执行完毕,然后才会执行 c# 代码,最后才会执行 $.get 函数所注册的回调函数的。
zheninchangjiang 2018-03-27
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
使用 vs 进行脚本调试。 要有异步的基本知识。这个 $.get 当然是先执行完毕了,然后才会回调所注册的委托函数。如果你没有这个基本的异步执行思想,那就只能写一点简单的“加减乘除”函数计算,而不能做好的异步交互程序设计开发。
谢谢,我也是刚做MVC,脚本也是搬的,勉强知道一点,事实上代码没有执行http://localhost:2659/IIData/GetIIDataAjaxHandler?SubViewId=9,我追到那个控制器的方法中去了,脚本中的代码没有触发
  • 打赏
  • 举报
回复
使用 vs 进行脚本调试。 要有异步的基本知识。这个 $.get 当然是先执行完毕了,然后才会回调所注册的委托函数。如果你没有这个基本的异步执行思想,那就只能写一点简单的“加减乘除”函数计算,而不能做好的异步交互程序设计开发。
zheninchangjiang 2018-03-27
  • 打赏
  • 举报
回复
@Url.Action("GetIIDataAjaxHandler","IIData",new{SubViewId=3}) 表达式不能包含 anonymous types 还能有其他写法?
zheninchangjiang 2018-03-27
  • 打赏
  • 举报
回复
老伙计说得什么都对,可是我也是临时做一次。 我只想知道为啥不执行,$.get('@Url.Action("GetIIDataAjaxHandler","IIData",new{SubViewId=9})'这个代码执行肯定是出错了,判断的基础是没有继续往后面的Function执行,我只想知道这个发布前还是挺好的东西,为啥发布了以后再调试就是不行了,唉
zheninchangjiang 2018-03-27
  • 打赏
  • 举报
回复
没执行完毕,要执行必然要执行 IIData/GetIIDataAjaxHandler?SubViewId=9 定义如下: public JsonResult GetIIDataAjaxHandler(int SubViewId) { //断点位置 var DataList = IIDataReponsitory.GetIIData(SubViewId); return Json(DataList, JsonRequestBehavior.AllowGet); } 根本不进到这个方法

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧