javascript AJAX post请求未刷新我的剃刀页面中的onGet方法中的页面

wnavrhmk  于 2023-06-20  发布在  Java
关注(0)|答案(1)|浏览(91)

我面临着一个问题与 AJAX 请求在剃刀页。下面提到了我 AJAX post请求,它在我的页面模式中命中了OnPostabc方法。

type: "POST",
                        url: path + '?handler=abc',
                        contentType: 'application/x-www-form-urlencoded',
                        data: { a: b, c: d,
                        headers:
                        {
                            "RequestVerificationToken": $('input:hidden[name="__RequestVerificationToken"]').val()
                        },
                       success: function(data, textStatus) {
                        console.log("DOne");
                       }
                        
                    });

所以在我的OnPostabc方法中,我使用return RedirectToPage()重定向页面;我将在我的页面模式中调用onget方法。

public virtual async Task<ActionResult> OnPostSaveLoanSetupAsync([FromRoute] Guid p, [FromRoute] Guid q, string a, string c)
        {
     return RedirectToPage();
    }

所以,在我的onget返回页()中,

public override async Task<ActionResult> OnGetAsync([FromRoute] Guid p, [FromRoute] Guid q)
        {
return Page();}

问题是.页面 AJAX 请求后没有刷新,并且没有用处理程序更新url

ig9co6j1

ig9co6j11#

你不能 AJAX 中直接重定向,正如Mike Brind所解释的,Ajax会将目标页面的html代码返回到前端,而不是像mvc和razor page那样直接重定向到目标。你需要重定向成功的方法。如果你只是重定向到目标页面而没有任何参数,你可以在后端使用return RedirectToPage("xxx");

success: function(response){
                    // check whether response is received
                    if (response) {
                       
                        document.write(response)
                    }
                }

在你的前面。
但是如果你想用一些参数重定向,你可以在后端使用return Content("/Index?property1='AAA'&property2='BBB'");

success: function(response){
                    // check whether response is received
                    if (response) {                        
                        window.location.href = response
                        
                    }
                }

在你的前面。

相关问题