在IIS Express中进行调试时,可以通过GET访问所有终结点。当发布到IIS10时,我可以导航到正在调用public void OnGet()的页面,并呈现剃刀页面。当在服务器IIS10上调用./MyPage/Partial时,我收到一个404not Found错误,这在Visual Studio中的IIS Express上不会发生。
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中,为了处理自定义的REST方法,我的页面顶部有下面的@page "{handler?}“。
发布于 2019-01-15 23:18:59
为了解决这个问题,我遵循了文件Startup.cs中的https://docs.microsoft.com/en-us/aspnet/core/razor-pages/razor-pages-conventions?view=aspnetcore-2.2或您在Program.cs中使用的任何类via的说明
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseStartup<Startup>();在文件Startup.cs中的方法中
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore().AddRazorPages(options => options.Conventions.AddPageRoute("/MyPage", "/MyPage/Partial/{id}")).AddRazorViewEngine().AddViews();
// Other service code impl. here
}https://stackoverflow.com/questions/54183897
复制相似问题