为了账号安全,请及时绑定邮箱和手机立即绑定

如何将参数从 Ajax 函数传递给控制器​​动作?

如何将参数从 Ajax 函数传递给控制器​​动作?

一只斗牛犬 2021-09-04 17:48:00
我的视图中有一个按钮,它调用一个 jQuery Ajax 函数,从我的模型中传入参数<input type="button" value="Run Check" onclick="runCheck('@actionItem.StepID', '@Model.Client.DatabaseConnectionString', '@Model.Client.ClientID')" />jQuery 函数<script type="text/javascript">        function runCheck(x, y, z) {            $.ajax({                url: '@Url.Action("ProcessFeedbackHasRows", "Client")',                type: 'POST',                contentType: 'application/json;',                data: { stepId: x, databaseConnectionString: y, clientId: z },                success: function (data) {                    if (data.IsValid) {                        //alert('true');                        var url = '@Url.Action("ViewProcessingFeedBackPartial", "Client")';                        $("#processingFeedbackPartialDiv").load(url, { stepId, databaseConnectionString, clientId },                            function () {                                $("#confirmButton").removeAttr("style");                            });                    } else {                        //alert('false');                        var newUrl = '@Url.Action("Processing", "Client")';                        window.location = newUrl;                    }                }            });    };</script>最后我的控制器动作public JsonResult ProcessFeedbackHasRows(int StepId, string DatabaseConnectionString, int ClientID)    {        bool isValid = true;        FeedbackDetails feedbackDetails = new FeedbackDetails();        feedbackDetails.Data = _clientProcessingService.GetProcessingFeedbackDetails(StepId, DatabaseConnectionString);当我在控制器中硬编码特定值以表示适当的步骤、客户端和数据库时,ajax 函数中的逻辑起作用,但是当我调试时,我看到两个整数 as0和字符串 as null。如何将这些值传递给控制器?我考虑过将它们存储在ViewBagor 中,ViewData但这看起来很笨重,并不是一个很好的做法。
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

尝试这个,


var req={ stepId: x, databaseConnectionString: y, clientId: z }


function runCheck(x, y, z) {

            $.ajax({

                url: '@Url.Action("ProcessFeedbackHasRows", "Client")',

                type: 'POST',

                contentType: 'application/json;',

                data: JSON.stringify(req),

                success: function (data) {

                    if (data.IsValid) {

                        //alert('true');

                        var url = '@Url.Action("ViewProcessingFeedBackPartial", "Client")';

                        $("#processingFeedbackPartialDiv").load(url, { stepId, databaseConnectionString, clientId },

                            function () {

                                $("#confirmButton").removeAttr("style");

                            });

                    } else {

                        //alert('false');

                        var newUrl = '@Url.Action("Processing", "Client")';

                        window.location = newUrl;

                    }

                }

            });

    };


查看完整回答
反对 回复 2021-09-04
?
墨色风雨

TA贡献1853条经验 获得超6个赞

根据这个问题,我必须删除我的contentType财产并且成功传递了值。


<script type="text/javascript">

    function runCheck(x, y, z) {

        $.ajax({

            url: '@Url.Action("ProcessFeedbackHasRows", "Client")',

            type: 'POST',

            data: { stepId: x, databaseConnectionString: y, clientId: z },

            success: function (result) {

                if (result.IsValid) {

                    alert('true');

                    var url = '@Url.Action("ViewProcessingFeedBackPartial", "Client")';

                    $("#processingFeedbackPartialDiv").load(url, { stepId, databaseConnectionString, clientId },

                        function () {

                            $("#confirmButton").removeAttr("style");

                        });

                } else {

                    alert('false');

                    var newUrl = '@Url.Action("Processing", "Client")';

                    window.location = newUrl;

                }

            }

        });

};


查看完整回答
反对 回复 2021-09-04
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信