[英]$.ajax method not calling the controller action method
我在@Html.ActionLink
点击事件上调用了javascript函数。 Javascript函数调用jquery函数,我在其中编写了$.ajax
方法来调用json控制器方法。 但它没有调用控制器方法.......
这是我的代码:
视图
@Html.ActionLink("Submit", "AdminEvaluate", "Application", new { onclick = "Show('" + Model.applicationList.ApplicationId + "','statusList')" })|
这里, ApplicationId
来自数据库, statusList
是单选按钮组名,我需要从中找到所选单选按钮。
Javascipt和jQuery代码
function Show(appId, appStatus) {
$.fn.gotof(appId,appStatus);
}
从视图获取参数并传递给jQuery函数
jQuery函数
$(document).ready(function () {
$.fn.gotof = function (appId, appStatus) {
var selectedItem = $("input[name='" + appStatus + "']:checked").val();
$.ajax({
url: '/Application/UpdateApplicantStatus',
data: { id: appId , status: selectedItem},
traditional: true,
dataType: "json",
contentType: "application/json",
success: function (data) {
alert(data);
}
});
});
控制器方法
public JsonResult UpdateApplicantStatus(int id, string status){
return Json("Correct", JsonRequestBehavior.AllowGet);
}
我已经在控制器方法上设置了断点,但它并没有在断点处出现。
提前致谢。
可能是这个样本帮助你:)让我知道
ajax调用类型:
$.ajax({
type: "GET",
url: '@Url.Action("UpdateApplicantStatus", "Application")',
contentType: "application/json; charset=utf-8",
data: { id: appId , status: selectedItem },
dataType: "json",
success: function() { alert('Success'); }
});
控制器:
public ActionResult UpdateApplicantStatus(int id, string status){
return Json(// blah blah blah ...
}
这应该工作,让我知道
你的ajax电话是错误的。
如果您的控制器方法签名是
public JsonResult UpdateApplicantStatus(int id, string appStatus)
然后你必须有参数名称与你的ajax调用参数匹配。
所以,而不是
data: { id: appId , status: selectedItem}
写吧
data: { id: appId , appStatus: selectedItem}
如果您有任何其他问题,只需在浏览器控制台中发布您应该有的错误。
也许控制器函数和ajax调用函数的参数名称应匹配。
你可以试试这个
data:{id:appId,appStatus:selectedItem},
这样做实际上3个错误1被@Mr代码通知类型丢失第2个你的参数不匹配,因为你的函数需要你以错误的格式发送数据。
$(document).ready(function () {
$.fn.gotof = function (appId, appStatus) {
var selectedItem = $("input[name='" + appStatus + "']:checked").val();
$.ajax({
url: '/ApplicationController/UpdateApplicantStatus',
data:"{'id':'" + appId + "', 'appStatus': '" + selectedItem+ "'}",//here you format is wrong i correct it
traditional: true,
dataType: "json",
contentType: "application/json",
success: function (data) {
alert(data);
}
});
});
坐了几个小时:
When using ajax - json in a js.script file:
the url is written with its real path e.g. - url: '/contoller/Action',
$.ajax({
url: '/NextPage/GetSpDropDown',
data: {'segInputVal': segInputVal},
cache: false,
type: "GET",
dataType: "json",
success: function (result) {
if (result.Success) {
var resultArray = result.Result;.....
如果脚本是在HTML页面中编写的,那么您必须使用
@(Url.Action(Action,controller))
$.ajax({
url: "@(Url.Action("GetSpDropDown", "NextPage"))",
data: { 'segInputVal': segInputVal },
cache: false,
type: "GET",
dataType: "json",
success: function (result) {
if (result.Success) {
var resultArray = result.Result;....
并且不要忘记不在控制器名称中包含单词controller。
我从stackoverflow得到了很多帮助 - 希望能够支付一些回报
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.