ASP.NET MVC 5从Javascript Error调用控制器方法
我试图从
javascript调用控制器方法,我似乎无法正确执行此操作.我对javascript的经验很少,并且已经跟踪了如何从stackoverflow执行此操作的其他示例,但我仍然遇到一些问题 – 如果有人可以提供帮助那就太棒了.
基本上我要做的是将javascript对象上的.data标记设置为控制器上的方法返回的字符串(此方法调用运行SQL Server函数的Web服务).该方法需要传递一个在函数中使用的参数. 代码如下: Javascript代码 for (var i = 0; i < stats.length; i++) { var stat = stats[i].data('id'); var color = CallService(stat); this.node.fill = color; } JQuery方法 function CallService(id) { $.ajax({ url: '@Url.Action("CallService","NodeController")',type: 'GET',dataType: 'json',cache: false,data: { 'id': id },success: function (color) { return color; },error: function () { alert('Error occured'); } }); } 控制器方法 [HttpGet] public JsonResult CallService(string id) { var idNum = Convert.ToInt32(id); var StationService = new getStationStatus.Service1SoapClient("Service1Soap"); string color = StationService.getStationStatus(idNum); return Json(color,JsonRequestBehavior.AllowGet); } 控制器被称为NodeController-这是我在url中所指的:调用ajax. 基本上发生的事情是当我运行页面时,我首先得到一个错误,说它无法将this.node.fill设置为空值然后我收到发生错误的警报 – 就像我说我对javascript缺乏经验所以我老实说,如果我在收到来自JQuery的错误消息之前在this.node.fill上收到错误,它是否正在以正确的顺序调用方法. 非常感谢任何/所有帮助或建议! 解决方法
>如果您的控制器类是NodeController,则在Url.Action中仅使用“Node”作为控制器名称:
url: '@Url.Action("CallService","Node")', >您无法从异步函数同步返回值.将回调传递给CallService以在成功时调用或使用jquery promise – http://api.jquery.com/promise/>我们不知道this.node.fill是什么或它定义的位置.可能的是,在执行赋值时没有定义this.node. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 用Response调用的Ajax.BeginForm OnFailu
- asp.net-web-api – 更好地总是在Web Api中返回HttpRespons
- 在ASP.NET中利用更少的内存
- asp.net – 配置示例
- .Net Core技术研究-WebApi迁移ASP.NET Core2.0
- ASP.Net MVC与Classic ASP(不是ASP.Net – 原始ASP)有何不同
- asp.net-membership – 用于创建.Net成员资格提供者用户的S
- asp.net – 链接按钮不能与IE 10一起使用
- asp.net-mvc – 如何构建,分区和构建大型MVC应用程序以便在
- [和管子对话] 1 2007-4-5/对面向对象的你言我语