无法在java脚本方法中传递ajax帖子

时间:2017-01-04 06:49:09

标签: javascript c# jquery ajax

我遇到了一个小冲突,当我正在读取html图像值并在java脚本方法中传递值数据工作正常,并在ajax POST中将值传递给控制器​​,而unforunelty ajax指向控制器超过断点但字符串Country参数为null(传递空值=),请知道原因!谢谢 !

public ActionResult Prayer_Schedule(string Country){

}


<img src="~/images/flags/india.jpg" value="india" onclick="choose(this);">

<script type="text/javascript">

    function choose(element) {
        var Country = element.getAttribute("value"); 
        $.ajax({
            type: 'POST',
            url: '../Home/Prayer_Schedule',
            data: {
                Country: Country,
            },
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            async: false,
            cache: false,
            timeout: 100000,
            success: function (response) {
                alert('ajax success: ' + response);
                //location.href = "/thankyou.html";
            }
        });

3 个答案:

答案 0 :(得分:1)

您必须使用jQuery.param作为帖子

 data: jQuery.param({ Country: Country}),

或使用$ .post

$.post('../Home/Prayer_Schedule', { Country: Country }, 

答案 1 :(得分:0)

您已设置contentType: 'application/json; charset=utf-8',因此您需要发送json object,或者只需将其删除即可获得控制器中的值。

$.ajax({
        type: 'POST',
        url: '../Home/Prayer_Schedule',
        data: {
            Country: Country,
        },
        dataType: 'json',
        async: false,
        cache: false,
        timeout: 100000,
        success: function (response) {
            alert('ajax success: ' + response);
            //location.href = "/thankyou.html";
        }
    });

此外,如果您没有用method装饰HttpPost,那么您也需要这样做。

[HttpPost]
public ActionResult Prayer_Schedule(string Country){

}

答案 2 :(得分:0)

它可能是你在getAttribute()函数上的javascript。您正在使用value,它不是img标记的有效属性。请尝试使用data- *属性:

<img src="~/images/flags/india.jpg" data-value="india" onclick="choose(this);">

然后在你的javascript:

element.getAttribute("data-value");