我发现了在页面上具有多个处理程序以及相关的命名约定(即OnPostXXX)和“ asp-post-
hanlder”标签帮助程序的示例。但是如何从AJAX调用中调用这些方法之一。
我有一个带有典型MVC视图和控制器的较旧示例,但这如何与Razor Page一起使用?
例如,如果我使用基本应用程序并将About.cshtml页面修改为以下内容:
@page
@model AboutModel
@{
ViewData["Title"] = "About";
}
@ViewData["Title"]
@Model.Message
@section Scripts {
function ajaxTest() {
console.log("Entered method");
$.ajax({
type: "POST",
url: '/About', //
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (xhr, status, errorThrown) {
var err = "Status: " + status + " " + errorThrown;
console.log(err);
}
}).done(function (data) {
console.log(data.result);
})
}
}
并在模型页面About.cshtml.cs上
public class AboutModel : PageModel
{
public string Message { get; set; }
public void OnGet()
{
Message = "Your application description page.";
}
public IActionResult OnPost() {
//throw new Exception("stop");
return new JsonResult("");
}
}
没有从Ajax调用中调用OnPost。