Asp.net mvc .ajax获取保持控制器中的数据保持为空

Asp.net mvc .ajax获取保持控制器中的数据保持为空,asp.net-mvc,jquery,Asp.net Mvc,Jquery,我试图使用下面的函数来获取一些数据 function SaveData() { var value = $('#tblRadio').find('input[type="radio"]:checked').val(); $.ajax({ type: "POST", url: '/home/IsEmployeeVoted', success: function (resul

我试图使用下面的函数来获取一些数据

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)
 {
 }
regionId对我来说一直是空的,尽管value变量在javascript中有一些值。有什么想法吗???

改变

data: 'regionID=' + value,

您需要将数据作为对象文本传递。另一个更接近您想法的选项(我不推荐):

url: '/home/IsEmployeeVoted?regoinID=' + value,
但是如果您想让它工作,您需要删除
类型:“POST”
(因为GET是默认类型)。

一些问题:

var value = $('#tblRadio').find('input[type="radio"]:checked').val();
我要确保
value
不是未定义的/null

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

另外,您正在指定
GET
将数据发布到服务器

例如,您还可以将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.");
            }
        });

url:“/home/IsEmployeeVoted”+value,可能会有很大帮助…@ankur当您点击控制器操作时,浏览器的url是什么?@DipeshParmar您在url中的controlleraction之后遗漏了一个正斜杠您想将数据发布到错误的操作。ajaxurl:
/home/isemployeevote
,但是您的控制器操作
/home/EmployeeVote
,它们是不同的。这是您的问题。@ankur检查url中QueryString的拼写,它与控制器操作中的参数不匹配。我已将其更改为Post,现在仍然为null,我已将警报(值)它有值……@ankur-尝试将其包装为对象文字,如我在示例中所示。并确保您的值变量包含值。@ankur使用fiddler2查看传递的内容up@ankur您尚未更改
数据
。至少不在上面的代码中。您的ajax url是url:
/home/isemployeevote
,但控制器操作是这样的:
/home/EmployeeVote
,因此您尝试将数据发布到第一个操作,而不是第二个操作。Ajax帖子Url和控制器操作Url必须相同。。。这是你的问题。
 $.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.");
            }
        });