从视图中调用Controler方法,并使用异步进行jQuery



我在控制器中有两种方法:PageLoadPage返回view,但Load返回JsonResult。我也可以使用jquery-functions的视图,在那里我称之为方法。

他们按顺序执行,但我想将它们异步称为。我该怎么做?

function **LoadPage**(page, isnext) {
    $(':focus').blur();
    $('#loadingBlockElement').show();
    $.ajax({
        type: "GET",
        url:  '@Html.Raw(Url.Action("page", new { formId = Model.Params.FormId, userId = Model.Params.UserId, baseVersion = Model.Params.BaseVersion, stateName = Model.Params.StateName, stateVersion = Model.Params.StateVersion, stateFormId = Model.Params.StateFormId, baseFormId = Model.Params.BaseFormId }))'+'&page='+page+'&isnext='+isnext,         
        success: function (result) {     
            $('body').find('.ui-dialog').find('div').remove();        
            $('body').find('.ui-dialog').remove();      
            WE = null;
            $('#main').html(result);
            $('form').hide();
        }
    });
}
function **Load**() {        
    $.ajax({
        type: "POST",
        url: "@Url.Action("load")"+'?userId=@Model.Params.UserId'+'&formId=@Model.Params.FormId'+'&baseVersion=@Model.Params.BaseVersion'+'&stateFormId=@Model.Params.StateFormId'+'&baseFormId=@Model.Params.BaseFormId'+'&stateName=@Model.Params.StateName'+'&stateVersion=@Model.Params.StateVersion'+'&page='+$('form:first').attr('ID'),
        success: function (result) {..bla-bla-bla

控制器

加载:

public JsonResult Load(int formId, int baseVersion, string stateName, int stateVersion, string page, string userId, int stateFormId, int baseFormId)
{
     ...
}

页面:

public ActionResult Page(int formId, int baseVersion, string stateName, int stateVersion, string page, string userId, bool? isNext, int stateFormId, int baseFormId)
{
    ...
}

ajax属性设置为 true $.ajax上的两个呼叫上,如文档所示,然后随后拨打每个函数:

$(document).ready(function() {
    LoadPage(page);
    Load();
});
function LoadPage(page) {
   $.ajax({
       type: "GET",
       async: true, // this is what you're missing
       url: "yoururl",
       success: function (result) {
           // handle success
       }
   });
}
function Load() {        
    $.ajax({
        type: "POST",
        async: true, // this is what you're missing
        url: "yoururl",
        success: function (result) {
            // handle success
        }
    });
}

最新更新