Jquery 将AJAX参数传递给ASP.net控制器时为空值,AJAX调用GET而不是POST控制器
我想使用AJAX将一个简单的字符串值传递给我的控制器。AJAX到达控制器,但给它一个空值。另外,如果我在控制器中添加动词,它会给我错误信息 控制器:Jquery 将AJAX参数传递给ASP.net控制器时为空值,AJAX调用GET而不是POST控制器,jquery,asp.net,ajax,asp.net-mvc,vb.net,Jquery,Asp.net,Ajax,Asp.net Mvc,Vb.net,我想使用AJAX将一个简单的字符串值传递给我的控制器。AJAX到达控制器,但给它一个空值。另外,如果我在控制器中添加动词,它会给我错误信息 控制器: Public Function SaveSelectedAnswer(ByVal strAnswer As String) As ActionResult Return Content(" OK ") End Function 脚本: var rad = document.frmQuestion.SelectedAnswe
Public Function SaveSelectedAnswer(ByVal strAnswer As String) As ActionResult
Return Content(" OK ")
End Function
脚本:
var rad = document.frmQuestion.SelectedAnswer;
for (var i = 0; i < rad.length; i++) {
rad[i].onclick = function() {
SendToController(this.value);
};
}
function SendToController(answer) {
$.ajax({
url: "/Students/SaveSelectedAnswer",
type: "GET",
data: answer,
dataType: "text",
contentType: "text/plain; charset=utf-8",
success: function(data) {
alert("From Controller:" + data);
},
error: function() {
alert("Error");
}
});
}
在ajax之前的SendToController中的console.loganswer,看看您得到了什么值?它需要数据:{strAnswer:answer},@Suprabhat,OP正在返回文本-返回内容OK,因此它确实需要数据类型:text@StephenMuecke谢谢,它起作用了:但是,如果我将数据指定为纯文本,为什么我必须使用JSON表示法。它不是JSON,尽管如果您使用JSON.stringify和contentType,它会是:“JSON”。您需要发回一个名称/值对-即strAnswer:someValue作为所有表单值,否则无法匹配任何内容。在您的情况下,“name”部分必须是strAnswer以匹配方法参数的名称