/ / JQuery таймер приставка на ASP.NET MVC страница бутон кликнете - jquery, asp.net-mvc, asp.net-mvc-2

JQuery таймер плъгин на ASP.NET MVC страница бутон кликнете - jquery, asp.net-mvc, asp.net-mvc-2

Имам ASP.NET MVC страница с бутон "Старт на Live Meeting".

Когато потребителят кликне върху този бутон, той извиква метод на контролера, наречен "StartLiveMeeting", който връща низ.

Ако администраторът връща празен низ, тогава искам таймерът да извика метода на контролера, докато не върне низа. Аз съм с jquery.timer.js плъгин ( http://plugins.jquery.com/files/jquery.timers-1.2.js.txt )

При натискане на бутона се извиква методът на контролера. Но таймерът не започва. Посочих 5 секунди, за да се обадя на контролния метод.

Оценявам отговорите ви.

Код на ASPX Страница:

//When "Start Meeting" button is clicked, if it doesn’t return empty string, Display that text and Stop Timer. Else call the Timer in every 5 sec and call the StartLiveMeeting Controller method.

$("#btnStartMeeting").click(function() {
var lM = loadLiveMeeting();
if (lM == "") {
$("#btnStartMeeting").oneTime("5s", function() {
});
} else {
$("#btnStartMeeting").stopTime("hide");
}
return false;
});
function loadLiveMeeting() {
$("#divConnectToLive").load("<%= Url.Action("StartLiveMeeting") %>", {}, function(responseText, status) {
return responseText;
});
}

<asp:Content ID="Content2" ContentPlaceHolderID="cphMain" runat="server">

<div id="divStartMeetingButton"><input id="btnStartMeeting" type="submit" value="Start Meeting" />
</div>
<div id = "divConnectToLive">
<div id="loading" style="visibility:hidden">
<img src="/images/../../img/MedInfo/ajax_Connecting.gif" alt="Loading..." />
</div>
</div>

Метод на контролера:

[HttpPost]
public string StartLiveMeeting()
{
int intCM_Id = ((CustomerMaster)Session["CurrentUser"]).CM_Id ;
var activeMeetingReq = (from m in miEntity.MeetingRequest
where m.CustomerMaster.CM_Id == intCM_Id
&& m.Active == true
select m);

if (activeMeetingReq.Count() > 0)
{
MeetingRequest meetingReq = activeMeetingReq.First();
return "<a href="" + meetingReq.URI + "">" + "Connect to Live Meeting</a>";
} else {
return "";
}
}

Отговори:

1 за отговор № 1

Най- load() методът е асинхронен, така че трябва или да го направите синхронно, или да поставите логиката на отговора си в обратната връзка.

$("#btnStartMeeting").click(function() {
loadLiveMeeting();
return false;
});
function loadLiveMeeting() {
$("#divConnectToLive").load("<%= Url.Action("StartLiveMeeting") %>", {}, function(responseText, status) {
if (responseText == "") {
$("#btnStartMeeting").oneTime("5s", function() {
// call load meeting again
});
} else {
$("#btnStartMeeting").stopTime("hide");
}
});
}