Anduin Xue
Anduin Xue

Anduin's Tech Blog

class library


Share view component between different ASP.NET Core web project

在本篇博客中,我们将探讨如何在不同的ASP.NET Core Web项目之间共享视图组件。当C#中的某些逻辑可以在多个项目之间共享时,我们通常会创建一个新的类库项目。但有时我们只想共享一些视图组件,例如,在`Aiursoft`的所有页面中,它们都包含一个`Logout`组件。多次编写这个组件显然是没有意义的。那么我们如何共享它呢? 首先,我们需要创建一个新的`.NET Core`类库项目,并将其命名为`Aiursoft.Pylon`。接下来,确保你的共享类库支持Razor。修改`csproj`文件以添加属性: <AddRazorSupportForMvc>true</AddRazorSupportForMvc> 现在,你的`Aiursoft.Pylon`项目已经支持编写Razor类库了。我们可以开始编写一个新的视图组件。将所有视图组件放在`Views/Shared/Components`文件夹下。要编写视图组件,请参考以下文档: [https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components](https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-components) 完成视图组件编写后,你的文件夹应如下所示: ![](/image/img-22d1ae24-0e8c-4abd-b970-214b6fe25b45.png) 现在你的视图组件已经完成,可以在多个项目之间共享了。接下来,创建一个引用你的类库的新Web项目。 ![](/image/img-5f7db548-fe96-43da-962d-016ec2904d62.png) 现在我们将从类库中导入所有视图组件到新的Web项目。修改`_ViewImports.cshtml`以添加类似如下的命名空间: ![](/image/img-1cf766d4-bdb7-4f73-bf12-03732a5c7286.png) 现在你可以在视图中使用共享的视图组件了。如下所示: ![](/image/img-64ede323-6c78-4d7f-833c-cca2bcd60228.png) 如果你的代码以深绿色显示,那么一切正常,你的视图组件可以成...--GPT 4

ASP.NET Core C# class library View component

Upgrade existing class library to .NET Core 3.0

本篇博客讨论了如何将现有的类库升级到最新的.NET Core 3.0。在升级过程中,可能会遇到一些警告和错误。文章详细介绍了如何解决这些问题,以便顺利完成升级。 首先,根据项目类型选择正确的项目文件第一行。对于Web项目,请使用`<Project Sdk="Microsoft.NET.Sdk.Web">`;对于Razor库,请使用`<Project Sdk="Microsoft.NET.Sdk.Razor">`。在这两种情况下,都不需要再次包含`Microsoft.AspNetCore.App`框架。 其次,对于非Razor库和非Web项目,通常不需要`Microsoft.AspNetCore.App`。但是,如果确实需要它,请考虑添加相应的框架引用。 最后,可能会遇到关于C#版本的错误。这个问题可能是因为没有使用最新的Visual Studio。为了解决这个问题,可以在项目文件中添加`<LangVersion>latest</LangVersion>`,然后清理并重新构建项目。 本文提供了一系列解决方案,帮助读者顺利升级现有类库到.NET Core 3.0。在升级过程中,是否还有其他潜在问题需要注意?如何确保项目在升级后仍能正常运行?阅读全文以获取更多详细信息和解决方案。--GPT 4

C# class library .NET Core

  • 1