繁体   English   中英

$ .ajax方法不调用控制器操作方法

[英]$.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM