AJAX 对 Class 文件中包含的方法的请求
AJAX Request to Method Contained in Class File
我正在尝试在 Razor 页面上发出 AJAX 请求,调用包含在单独 class 文件中的方法(不在页面的页面模型中 - 因为我最终想要来自多个不同页面的相同请求)。
很遗憾,请求失败。我认为这可能与我使用的语法有关,或者可能与我试图调用的 class 属于错误类型有关。请注意,如果我将 url 更改为页面模型中的方法(无需其他更改),请求确实有效。
我对 ASP.NET Core Razor 页面和 AJAX 请求还很陌生,所以如果这里有根本性的误解,请告诉我。
AJAX 请求代码 (jQuery):
$(document).ready(function () {
$.ajax({
dataType: 'json',
url: '/Tools/Redirect?handler=AccessRedirect',
type: 'GET',
success: function (data) {
alert("Request Success, Data = " + data);
},
error: function () {
alert("Request Failed");
}
});
})
(我也尝试过 url: /Tools/Redirect/AccessRedirect
使用简单地称为 AccessRedirect
的方法,使用 [HttpGet]
属性,但这也不起作用)
C# Class 代码(文件在 Redirect.cs 文件夹中):
public class Redirect
{
public JsonResult OnGetAccessRedirect()
{
return new JsonResult("test");
}
}
非常感谢任何帮助。谢谢。
您的根本误解是 Razor Pages 请求必须以 PageModel
class 中的处理程序方法为目标。您不能将 URL 映射到 class 文件中的任意方法。处理程序方法必须在派生自 PageModel
的 class 中,并且它们必须遵循某些约定。
您可以在此处阅读有关 Razor Pages 中的处理程序方法的更多信息:https://www.learnrazorpages.com/razor-pages/handler-methods
如果您有想要集中的代码,可以将其放入 C# class,然后在您的处理程序方法中调用该方法
我正在尝试在 Razor 页面上发出 AJAX 请求,调用包含在单独 class 文件中的方法(不在页面的页面模型中 - 因为我最终想要来自多个不同页面的相同请求)。
很遗憾,请求失败。我认为这可能与我使用的语法有关,或者可能与我试图调用的 class 属于错误类型有关。请注意,如果我将 url 更改为页面模型中的方法(无需其他更改),请求确实有效。
我对 ASP.NET Core Razor 页面和 AJAX 请求还很陌生,所以如果这里有根本性的误解,请告诉我。
AJAX 请求代码 (jQuery):
$(document).ready(function () {
$.ajax({
dataType: 'json',
url: '/Tools/Redirect?handler=AccessRedirect',
type: 'GET',
success: function (data) {
alert("Request Success, Data = " + data);
},
error: function () {
alert("Request Failed");
}
});
})
(我也尝试过 url: /Tools/Redirect/AccessRedirect
使用简单地称为 AccessRedirect
的方法,使用 [HttpGet]
属性,但这也不起作用)
C# Class 代码(文件在 Redirect.cs 文件夹中):
public class Redirect
{
public JsonResult OnGetAccessRedirect()
{
return new JsonResult("test");
}
}
非常感谢任何帮助。谢谢。
您的根本误解是 Razor Pages 请求必须以 PageModel
class 中的处理程序方法为目标。您不能将 URL 映射到 class 文件中的任意方法。处理程序方法必须在派生自 PageModel
的 class 中,并且它们必须遵循某些约定。
您可以在此处阅读有关 Razor Pages 中的处理程序方法的更多信息:https://www.learnrazorpages.com/razor-pages/handler-methods
如果您有想要集中的代码,可以将其放入 C# class,然后在您的处理程序方法中调用该方法