[英]ASP.NET Core Razor Pages Endpoint Routing for all Paths after Page Name in URL
[英].net core 3.1: Endpoint routing for razor pages AND API controllers
**編輯 - 添加查詢字符串
我已將 Core 2.2 站點升級到 3.1,唯一困擾我的問題如下:我在同一應用程序中有常規的 Razor 頁面和 API 控制器 - 共享代碼和功能使這成為一個簡單的解決方案。 在 2.2 中,以下路由設置沒有問題:
services.AddMvc()
和
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
分別在Startup.ConfigureServices
和Startup.Configure
中。
我的 controller 看起來像:
{
[Route("api/[controller][")]
[Produces("application/json")]
[ApiController]
public class RRateController : ControllerBase
{
public RRateController()
{
}
[HttpGet]
public async Task<clsObject> Get([FromQuery] string[] TopCodes)
{
clsObject obj = new clsObject();
...
return obj;
}
}
使用查詢字符串調用 controller:
Root + '/API/RRate?TopCodes=Val1&TopCodes=Val2'
升級到.net核心3.1,我正在使用
services.AddControllers();
services.AddRazorPages();
和
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
};
在ConfigureServices
和Configure
中。
我的問題是TopCodes
的字符串數組沒有傳遞到 controller 中。 訪問了 controller 但數組為空。 沒有參數的類似 controller 在新設置下工作正常。
我應該如何配置端點以與具有 Controller\Action\parameter 模式的 Razor 頁面和 API 控制器一起使用?
api/[controller][
[
的 [ 是故意的嗎? 不應該是api/[controller]
嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.