使用API​​和剃须刀页面启动ASP.NET Core Web项目

问题描述

我是Web开发的初学者,我想开始一个新的ASP.NET Core项目,并且我对该项目的结构以及最佳实践有一些疑问。因此,我的目标是一起使用剃须刀页面和Web API创建一个网站。我考虑了两个选项:

  1. 为API和剃须刀页面创建不同的项目,并在它们之间创建一个C#库,该库具有一个API帮助程序,该帮助程序将HTTP请求发送到API项目。
  2. 将API和剃须刀页面放在同一项目中。我认为此选项要简单得多,但我有一些担忧。如何调用API? (我看到您可以使用jQuery或以与制作API Helper类相同的方式使用)。如果我使用jQuery进行API调用,是否可以在jQuery将数据发送到API之前在C#中进行验证?

我想问的另一件事是我应该使用身份进行身份验证吗?进行迁移时,我不希望数据库中有默认页和表。我要自定义它们。我知道,如果我将身份类和页面设置为脚手架,则可以对其进行修改,但我想手动进行。我也知道制作这样的身份验证系统可能会充满挑战,但是我想学习如何做。 综上所述,我很好奇要知道如何在开发中构建ASP.NET CORE Web项目,我想知道一些最佳实践来完成所有这些事情。预先谢谢你!

解决方法

我认为您可能误解了剃须刀页面的工作原理。它是一个纯服务器端渲染系统。客户端从服务器请求页面,并且剃刀页面呈现整个页面,并将结果HTML,CSS,JS发送到客户端浏览器。这意味着您实际上不需要将API视为单独的部分。除非您想使其更加复杂,否则Razor Pages网站将是一个项目,其中每个页面都有两个文件,一个结合了c#和html来构建网页的View(.cshtml)文件,以及一个后备.cs文件。负责处理要提供给视图的数据的路由和组合,以及处理身份验证等。

对于身份验证,如果计划实际部署此身份验证,建议您选择Identity,否则很难部署自己的身份验证系统且容易出错,并且Identity易于根据您的特定需求进行自定义,同时还提供了一个不错的选择。和安全的起点。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...