У меня есть стандартное веб-приложение ASP.NET Core, созданное из шаблона Visual Studio.У меня есть страница бритвы, которая выдает запрос XHR POST с полезной нагрузкой после события изменения.
Если я сделаю URL-адрес запроса контроллером API в приложении (то есть в папке Controllers
), запросуспешно.
Если я выполняю один и тот же запрос с той же полезной нагрузкой для метода страницы бритвы (в папке Pages
), он завершается с http 400.
Оба метода имеют одинаковую подпись.
Кто-нибудь может описать, почему поведение отличается?
Я бы хотел использовать средство на бритвенных страницах для POST для метода-обработчика из XHR.
UserController.cs
namespace Athena.Web.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
public void Post([FromBody]object postedObj)
{
...
}
}
}
Usr.cshtml.cs
namespace Athena.Web.Pages.Users
{
public class UsrModel : PageModel
{
public void OnPostActionHere([FromBody]object postedObj)
{
...
}
public void OnPost([FromBody]object postedObj)
{
...
}
}
}
Usr.cshtml
@page "{handler?}"
@model Athena.Web.Pages.Users.UsrModel
@{
ViewData["Title"] = "Edit";
}
<h1>User</h1>
Я не могу опубликовать вызов XHR, поскольку он поступает от стороннего Syncfusionуправление, но страница вызова в основном:
Index.cshtml
<ejs-grid id="grid">
<e-data-manager updateUrl="/api/User" insertUrl="/Home/Usr" adaptor="UrlAdaptor">
...
</ejs-grid>