Use Razor pages and webapi in the same project @ .net core 3.0

I created a web app (razor pages) in .net core 3.0. Then I added an api controller to it (both from templates, just few clicks). When I run app, razor page works, but api call returns 404.I get the answer on stackoverflow:https://stackoverflow.com/questions/56298701/razor-pages-and-webapi-in-the-same-project;here is the code:public void ConfigureServices(IServiceCollection services)
    {
        services.Configure<CookiePolicyOptions>(options =>
        {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
        });

        services.AddRazorPages().AddNewtonsoftJson();
        services.AddControllers().AddNewtonsoftJson();
    }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
     //other middlewares
      app.UseEndpoints(endpoints =>
        {
            endpoints.MapRazorPages();
            endpoints.MapControllers();
        });
    }The question is solved;After this,I want add a custon AuthorzationMiddleWare to the pipeline both invoked in razor pages and webapis,but it only works in webapi actually ;here is the code:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
}

app.UseSession();

app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapControllers();
});

app.UseCookiePolicy();

app.UseMiddleware(typeof(DkmsAuthorzationMiddleWare));//this is the custom middelware;
}

I read the Official documents about middleware;https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-3.0

The Mvc pipeline is composed by a series of middlewars,and the middlewars are sorted,the sort depending on when we use the middle in Configure Method;so I move the app.UseMiddleware(typeof(DkmsAuthorzationMiddleWare)) front to app.UseRouting(),because app.UseRouting route the request to razor pages or webapis;Ok,AuthorzationMiddleWare to the pipeline both invoked in razor pages and webapis :)


原文地址:https://www.cnblogs.com/Bright-Lee/p/11725056.html

时间: 2024-10-12 11:50:35

Use Razor pages and webapi in the same project @ .net core 3.0的相关文章

【翻译】介绍 ASP.NET Core 中的 Razor Pages

介绍 ASP.NET Core 中的 Razor Pages 原文地址:Introduction to Razor Pages in ASP.NET Core         译文地址:介绍 asp.net core 中的 Razor Pages          翻译:ganqiyin Razor Pages 是 ASP.NET Core MVC 的一个新功能,可以让基于页面的编程方案更容易,更高效. 如果您正在寻找使用 Model-View-Controller 的教程,请参阅ASP.NET

ASP.NET Core Razor Pages 教程六 处理表单

处理表单 任何成功的电子商务网站都需要能够处理订单.如果你没有客户的联系方式和送货地址就很难做到这一点.网站收集这类信息的方式是使用表单. 在本节中,你将向 Order 页面添加一个表单,同时还将向表单中添加验证,以确保信息的收集是有效和完整的. 准备工作 首先,添加以下的样式声明到 wwwroot/css 中的 site.css 文件: label[for="OrderQuantity"]{ padding-left: 15px; } #OrderQuantity{ margin:

.NET Core Razor Pages中ajax get和post的使用

ASP.NET Core Razor Pages Web项目大部分情况下使用继承与PageModel中的方法直接调用就可以(asp-page),但是有些时候需要使用ajax调用,更方便些.那么如何使用ajax调用呢?? 1.Razor Pages普通页面的跳转 <a asp-page="About">About</a> <form asp-page="./Index" method="get"> <div

在Asp.net Razor Pages/MVC程序中集成Blazor

今天试了一下在Asp.net core Razor Pages/MVC程序中集成Blazor(Server-side),还是可以完美整合的,这里以Razor Pages为例(.net core 3.1),记录下相关过程. 1. 配置StartUp,添加Blazor服务 public void ConfigureServices(IServiceCollection services){    services.AddRazorPages();    services.AddServerSideB

基于ASP.NET Core 3.0快速搭建Razor Pages Web应用

前言 虽然说学习新的开发框架是一项巨大的投资,但是作为一个开发人员,不断学习新的技术并快速上手是我们应该掌握的技能,甚至是一个.NET Framework开发人员,学习.NET Core 新框架可以更快速掌握其中的编写,构建,测试,部署和维护应用程序. 您现有的.NET Framework应用程序可以在其他操作系统上工作.对于希望扩大类库的受众平台,或者希望在分布式应用程序的其他领域使用相同代码的开发人员来说,这是非常好的选择. .NET Core是为了重新启动某些Framework组件而为其他

在 ASP.NET Core 中向 Razor Pages 应用显示模型

以下是实现也一个asp.net core Razor Pages的基本步骤 1.定义模型元素 using System; using System.ComponentModel.DataAnnotations; namespace RazorPagesMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } [DataType(DataType.Date)]

说说ASP.Net Core 2.0中的Razor Page

随着.net core2.0的发布,我们可以创建2.0的web应用了.2.0中新东西的出现,会让我们忘记老的东西,他就是Razor Page.下面的这篇博客将会介绍ASP.Net Core 2.0中的Razor Page. 在ASP.Net Core 2.0新特点之一就是支持Razor Page.今天的Razor Page是ASP.Net Core MVC中的一个子集.ASP.Net Core MVC 支持Razor Page意味着Razor Page应用从技术上来说就是MVC应用,同时Razo

Razor Page&ndash;Asp.Net Core 2.0新功能

Razor Page介绍 前言 上周期待已久的Asp.Net Core 2.0提前发布了,一下子Net圈热闹了起来,2.0带来了很多新的特性和新的功能,其中Razor Page引起我的关注,作为web程序员来说,Asp.Net下的任何web框架都会去特别关注,因为每次一个新的框架出来,意味着一次革命.此次的Razor Page是否能带来不一样的体验呢,让我们一起来看看吧. 什么是Razor Page 我们都知道在Asp.Net MVC中,Razor是其一种视图引擎.而今天我们介绍的Razor P

Asp.net core 2.0.1 Razor 的使用学习笔记(六)

Asp.net core 2.0.1 Razor 的使用学习笔记——基本页面的建立 VS这版(vs版本:15.5.6  .net版本:4.7.02558)的Razor页面自动生成就是坑爹货,它自动生成的页面真是能坑死你不带商量的.到处错误,到处bug.不过相信微软最终是会修复的. 以下是Bug的具体情况,不关心的朋友可以直接跳过. 正常来说,创建的快捷方式是: 1.Pages右键>添加>新建文件夹>xxxx 2.xxxx右键>添加>Razor页面>使用实体框架生成Raz