ASP.net MVC无法从Controller

时间:2017-04-10 16:12:14

标签: c# asp.net-mvc devexpress

在我的ASP.net MVC应用程序中,我有一个调用控制器动作的按钮,需要更长的时间(> 60分钟)才能完成。为了让我的会话保持活跃,我正在使用setInterval函数。

参考:http://www.dotnetcurry.com/ShowArticle.aspx?ID=453&AspxAutoDetectCookieSupport=1

视图看起来像:

@Html.DevExpress().Button(settings =>
                        {
                            settings.Name = "LoadData";
                            settings.Text = "Load Data";
                            settings.ClientSideEvents.Click = string.Format("function(s, e) {{ OnButtonClick(s, e, '{0}', '{1}'); }}", Url.Action("Start", "ImportData", null), Url.Action("alive", "ImportData", null));
                            settings.UseSubmitBehavior = false;
                        }).GetHtml()

我的OnButtonClick功能看起来:

function OnButtonClick(s, e, startUrl, progressUrl) {
    //debugger;
    StartActionOnServer(startUrl);
    setInterval(keepalive, 600000); //every 10 minutes. 
}

Keep Alive看起来像:

function keepalive()
{
    console.log("I am alive");
    $.ajax({
        type: 'POST',
        url: '/ImportData/alive',
        dataType: "text",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function (msg) {
            debugger;
            console.log("pinging");
        },
        Error: function (xhr) {
            debugger;
            alert(xhr)
        },
        });
 }

我的问题是代码没有达到我的Controller功能,结果我从来没有在我的成功块中得到结果。

success: function (msg) {
            debugger;
            console.log("pinging");
        },

控制器动作功能:

[HttpPost]
    public ActionResult alive()
    {
        var result = "Still Alive";
        return Content(result);
    }

而不是我硬编码:console.log(“我活着”);我想控制器返回这个。

我的console.log看起来像附加的screeshot

enter image description here

知道如何从Controller获取价值吗?我在这里做错了什么。 感谢。

1 个答案:

答案 0 :(得分:0)

这解决了我的问题:

function keepalive()
{
    console.log("I am alive");
    $.ajax({
        type: 'POST',
        url: '/ImportData/alive',
        dataType: "text",
        contentType: "text",
        success: function (msg) {
            console.log(msg);
        },
        Error: function (xhr) {
            alert(xhr)
        },
    });
 }