0
在我的ASP.net MVC應用程序中獲得價值,我有一個按鈕調用控制器操作,需要更長的時間(> 60分鐘)才能完成。爲了保持我的會話活着,我使用了setInterval函數。ASP.net MVC無法從控制器
參考: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.
}
保持活躍的樣子:
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( 「我還活着」);我想要Controller返回這個。
我的console.log看起來像附着screeshot
任何想法如何擺脫控制器價值?我在做什麼錯在這裏。 謝謝。
你看到控制檯網絡選項卡,查看URL路徑是否正確? – Krishna
''我從來沒有在我的成功塊中得到結果' - '然後你會得到什麼回報?請注意,您可能會忽略錯誤,因爲您錯誤地鍵入了'error'屬性(您有'Error')。瀏覽器調試工具中服務器的實際響應是什麼? – David
這是MVC還是Web-Api? – Greg