.ajax让控制器中的数据保持为空

时间:2013-02-13 12:24:38

标签: asp.net-mvc jquery

我正在尝试使用以下函数来获取一些数据。

function SaveData() {
            var value = $('#tblRadio').find('input[type="radio"]:checked').val();
            $.ajax({
               type: "POST",
            url: '/home/IsEmployeeVoted',
            success: function (result) {
                alert(result); // shows whole dom
                if (parseInt(result) > 0) {
                    $('div.dvVoteWrapper').removeAttr('style');
                    $('div.popupArea').removeAttr('style');
                }
                else {
                    window.location = '/home/EmployeeVote?regoinID='+ value;
                }
            },
            error: function () {
                alert("Sorry, The requested property could not be found.");
            }
        });
        }

控制器功能:

public ActionResult EmployeeVote(string regionID)
 {
 }
虽然value变量在javascript中有一些价值,但是对于我来说,
regionId仍然是空的。任何想法??

2 个答案:

答案 0 :(得分:1)

更改

data: 'regionID=' + value,

data: {regionID: value},

您需要将数据作为对象文字传递。另一种选择(我不推荐),更接近你的想法:

url: '/home/IsEmployeeVoted?regoinID=' + value,

但是如果你想要这个,你需要删除type: 'POST'(因为GET是默认类型)。

答案 1 :(得分:0)

几个问题:

var value = $('#tblRadio').find('input[type="radio"]:checked').val();

我确保value未定义/ null。

在ajax调用之前使用alert(value)

此外,您还要向服务器指定GETPOSTING数据。

例如,您也可以将regionId包装在javascript对象中。

 $.ajax({
            type: "POST",
            data: { regionID: value },
            url: '/home/IsEmployeeVoted',
            success: function (data) {
                alert(data); // shows whole dom
                if (parseInt(data) > 0) {
                    $('div.dvVoteWrapper').removeAttr('style');
                    $('div.popupArea').removeAttr('style');
                }
                else {
                    window.location = "/home/EmployeeVote";
                }
            },
            error: function () {
                alert("Sorry, The requested property could not be found.");
            }
        });