/ / JQuery časovač plugin na ASP.NET MVC stránku tlačidlo click - jquery, asp.net-mvc, asp.net-mvc-2

Časový doplnok JQuery na ASP.NET MVC stránku kliknutie - jquery, asp.net-mvc, asp.net-mvc-2

Mám ASP.NET MVC stránku s tlačidlom nazývaným "Start Live Meeting".

Keď používateľ klikne na toto tlačidlo, vyvolá metódu kontroléra s názvom "StartLiveMeeting", ktorá vráti reťazec.

Ak regulátor vráti prázdny reťazec, potom chcem, aby časovač vyvolal metódu Controller, kým nevráti reťazec. Používam plugin jquery.timer.js ( http://plugins.jquery.com/files/jquery.timers-1.2.js.txt )

Po kliknutí na tlačidlo sa volá metóda ovládača. Ale časovač sa nespúšťa. Zadal som 5 sekúnd, aby som zavolal na metódu regulátora.

Oceňujem vaše odpovede.

Kód na stránke 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>

Metóda kontroléra:

[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 "";
}
}

odpovede:

1 pre odpoveď č. 1

Na load() metóda je asynchrónny, tak si "ll musieť buď urobiť synchrónny alebo dať vaša odpoveď logika spätného volania.

$("#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");
}
});
}