为什么我的警报没有从ajax的成功返回中解雇?

时间:2014-05-08 20:51:08

标签: jquery asp.net-mvc

我的ajax调用控制器并成功发送参数,但我想在提交页面之前向我的用户显示警告。为什么我的警报没有显示。这是我正在使用的。如果可以,请你帮助我。谢谢!

var theParms = { selectedDate: "date", testing: "myTester" };
$("#saveBtn").click(function () {
    $.ajax({
        type: "GET",
        url: "/Error/TimeCheck",
        data: theParms,
        datatype: "html",
        success: function (data) {
            alert(data);
        }
    });
});

public ActionResult Timecheck( string selectedDate, string testing)
{
    return Content("hello " + selectedDate); 
}

2 个答案:

答案 0 :(得分:0)

您的客户端希望Ajax调用返回HTML数据(datatype: "html")。但是,您的ASP.NET MVC控制器方法只返回一个字符串。它甚至没有设置内容类型。

在服务器端返回正确的HTML响应或在客户端修复预期的数据类型以匹配服务器返回的任何内容。如果您使用Chrome的开发者工具,则可以在网络视图中轻松查看有效的内容类型。

我建议你解决这个问题:

var theParms = { selectedDate: "date", testing: "myTester" };
$("#saveBtn").click(function () {
    $.ajax({
        type: "GET",
        url: "/Error/TimeCheck",
        data: theParms,
        datatype: "text",
        success: function (data) {
            alert(data);
        }
    });
});

public ActionResult Timecheck( string selectedDate, string testing)
{
    return Content("hello " + selectedDate, "text/plain"); 
}

答案 1 :(得分:0)

ajax是异步的,因此它会跳过成功部分。您可以通过更改“async:false”属性来更改ajax的异步bevavious。你可以试试这个:

 var theParms = { selectedDate: "date", testing: "myTester" };
   $("#saveBtn").click(function () {
   $.ajax({
    type: "GET",
    url: "/Error/TimeCheck",
    data: theParms,
    async:false,
    datatype: "html",
    success: function (data) {
        alert(data);
    }
  });
 });