我遇到了一个小冲突,当我正在读取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";
}
});
答案 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");