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.");
}
});