我正在使用ajax将我的视图中的值发送到我的应用程序中的控制器。
的Ajax:
<script type="text/javascript">
$('#SendToController').on('click', function() {
sendToController();
return false;
});
function sendToController(){
var selectedM = $('#Month').val();
var chosenY = $('#Year').val();
var chosenC = $('#County').val();
//alert(chosenY);
$.ajax({
url: '/ALog/MReports/Generate',
data: { 'monthV' : selectedM, 'year' : chosenY, 'county' : chosenC },
type: 'GET',
cache: false,
success: function (data) {
$("body").html(data);
$('.dropdown-toggle').dropdown();
},
error: function () {
if (selectedM === "") {
alert("Error 1!");
}
else if (chosenY === "") {
alert("Error 2!");
}
else if (chosenC === "") {
alert("Error 3!");
}
}
});
}
</script>
现在,在我的表单上,我有3个下拉列表,我从上面的ajax代码中获取值。 ajax函数转到error
部分的唯一时间是chosenC
和/或selectedM
为空,但如果chosenY
为空,则仍会转到success
}。
当我将其留空以确保我使用javascript(chosenY
或空(null
)检查正确的值时,我已提醒""
的值。我已经尝试了两种,都没有工作..
以下是我提醒chosenY
所以从那以后我认为它是一个空字符串..所以我正在检查...但是没关系,因为即使它是空的,ajax方法也认为它是success
而不是error
..为什么会这样?
感谢任何帮助。
答案 0 :(得分:0)
感谢@MarcB,我想到了这一点。它实际上是在服务器端,它并没有引发错误,因为它正在使用该值来搜索数据库表中的记录,即使它是空字符串。
所以我只是将字符串转换为int
,如果将年份作为空字符串传递,则会抛出异常。
再次感谢您的想法/帮助!