Jquery AJAX调用控制器's方法的参数不起作用

Jquery AJAX CALL with parameter to controller's method not working

本文关键字:方法 参数 不起作用 AJAX 调用 控制器 Jquery      更新时间:2023-09-26

我在MVC应用程序中使用Jquery AJAX调用。我的视图是这样的:

<p>
    Name @Html.TextBox("Name")
    Date @Html.TextBox("Date")
    <input type="submit" id="SubmitName" value="Submit" />
</p>
我的AJAX调用如下:
<script type="text/javascript">
    function send() {
        var Details = JSON.stringify({
            StudentName: $("#Name").val(),
            DateofJoining: $("#Date").val()
        });
        $('#target').html('sending..');
        $("SubmitName").click(function () {
            $.ajax({
                url: "/DQR/Details",
                type: "POST",
                dataType: "json",
                contentType: "application/json",
                data : Details ,
                success: function (data) {
                    $('#target').html(data.msg);
                },
            });
        })
    }
</script>

我的控制器是这样的

[HttpPost]
        public ActionResult Details (string StudentName, string DateofJoining)
        {
            var result = (from dc in _db.Details
                          where dc.Name== StudentName
                          select dc.Address);
            return Json(result, JsonRequestBehavior.AllowGet);
        }
我不知道我错过了什么。ajax请求不工作。谁能帮我一下?

假设你的控制器名称是DQR,那么你需要这样写:-

 $.ajax({
                url: "/DQR/Details",
                type: "POST",
                dataType: "json",
                contentType: "application/json",
                data : Details ,
                success: function (data) {
                    $('#target').html(data.msg);
                },
            });

和id应该是:-

 $("#SubmitName").click(function () {
        var Details = JSON.stringify({
        StudentName: $("#Name").val(),
        DateofJoining: $("#Date").val()
    });
    $('#target').html('sending..');
    //// your ajax call
}});

和Send()是什么?我的意思是点击事件应该在$(document).ready(function() {});

我建议使用简单的按钮,而不是"提交",如果你是玩客户端。

正确绑定点击处理程序,在点击处理程序中移动Details对象创建

$(function() {
    $("#SubmitName").click(function () {
        var Details = JSON.stringify({
            StudentName: $("#Name").val(),
            DateofJoining: $("#Date").val()
        });
        $('#target').html('sending..');
        $.ajax({
            url: "/DQR/Details",
            type: "POST",
            dataType: "json",
            contentType: "application/json",
            data : Details ,
            success: function (data) {
                $('#target').html(data.msg);
            }
        });     
    });
});

您也可以使用jQuery的$.post方法。

下面是一个例子。

var StudentName = $("#Name").val();
var DateofJoining = $("#Date").val();
$.post('/Controller/Action', { 'StudentName': StudentName , 'DateofJoining': DateofJoining  }, function(data) {
    $('#target').html(data.msg);
}, 'json');

$.post