При отладке в IIS Express все конечные точки доступны через GET. При публикации в IIS10 я могу перейти к странице, на которой вызывается public void OnGet()
, и отображает страницу бритвы. При вызове ./MyPage/Partial на сервере IIS10 я получаю сообщение об ошибке 404 Not Found, и это не происходит на IIS Express в Visual Studio.
public class IndexModel : PageModel
{
[BindProperty]
public MyModel MyModel { get; set; }
[HttpGet]
public void OnGet()
{
...
}
[HttpGet]
public IActionResult OnGetPartial([FromQuery] int id)
{
...
}
}
Я следовал инструкциям на https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2, и я думаю, что мне нужно настроить эти маршруты согласно https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-2.2
Хотя мой вопрос заключается в том, почему в IIS Express я могу вызвать javascript jquery $.load('./MyPage/Partial?id=1')
, и он работает нормально, а при публикации возвращает ошибку 404? И какое было бы конкретное решение?
РЕДАКТИРОВАТЬ: в моем Index.cshtml вверху есть @page "{handler?}" Для обработки пользовательских методов REST.