如何通过Razor Pages扩展ASP.NET Core MVC项目?

蒂姆·迈耶

我目前正在尝试通过Razor页面扩展现有的ASP.NET Core MVC项目(因为几个教程视频声称MVC,API,Razor和Blazor可以共存于同一项目中,但是它们都没有显示如何完成)。

我已经知道我需要通过以下方式扩展Startup.cs

services.AddRazorPages();

app.UseEndpoints(endpoints =>
{
    // This was here already
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    // I added this
    endpoints.MapRazorPages();
});

我试图简单地增加一个剃须刀页“测试”的Views文件夹,延伸_Layout.cshtml通过

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Home" asp-action="Test">Test</a>
</li>

然后延伸HomeController通过

    public IActionResult Test()
    {
        return View();
    }

但是,这可能会导致断点未命中或ViewData字典出现问题null(在纯Razor Page项目中使用相同的代码),这可能是因为它试图将Razor Page视为MVC视图或其他东西。

我也尝试添加类似

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-page="/Home/Test">Test</a>
</li>

改为布局,但这会产生一个类似

https://localhost:5001/?page=%2FHome%2FTest

单击导航栏项目时。

我完全可以在单独的VS项目中同时拥有这两种东西,但是没有办法在单个VS项目和单个布局中同时使用它们吗?

如果您想在回答之前尝试一下,请使用以下步骤:

  1. 在Visual Studio 2019中创建新的项目/解决方案
  2. 选择“ ASP.NET Core Web应用程序”作为项目模板
  3. 单击“创建”,然后选择“ Web应用程序(模型-视图-控制器)”作为具有默认设置的模板
  4. 在Startup.cs中添加Razor支持
  5. 尝试使一个简单的剃​​须刀页面在该项目中正常工作
dbvega

剃须刀页面不需要控制器。

默认目录为/Pages,然后默认情况下所有页面都应位于Pages目录内。如果要更改它,可以通过ConfigureServices在启动时覆盖配置来完成。

services.AddRazorPages(c=>c.RootDirectory = "/PagesRootDir");

要创建页面链接,应使用asp-page标签。例如,如果页面名称是Test物理路径(默认情况下)将为Pages\Test要生成链接,您将需要使用:

<a asp-page="/Test">Test Page</a>

默认情况下,页面将不使用默认布局,您可以随时覆盖它。

@page
@model WebApplication1.Pages.TestModel
@{
    Layout = "_Layout";
}

<h1>
    Test Page
</h1>

删除布局:

Layout = null;

如果要在所有页面上使用“ Views \ Shared \ _Layout”,则需要_ViewStart使用以下代码创建一个

@{
    Layout = "_Layout";
}

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过循环使用Asp.Net MVC Razor语法连续显示3个项目

来自分类Dev

创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

来自分类Dev

如何将 Razor 组件集成到具有多个路由的现有 Razor Pages Asp.net Core 项目中

来自分类Dev

如何解决ASP.NET Core MVC项目中的“未找到视图”异常

来自分类Dev

如何从自定义基础项目创建ASP.NET Core MVC样板

来自分类Dev

如何在ASP.NET Core MVC项目中向特定区域提交表单?

来自分类Dev

ASP.Net Core MVC项目无法配置路由?

来自分类Dev

如何为多个用户角色构造.NET Core MVC项目?

来自分类Dev

如何在ajax post请求asp.net core mvc razor中发送对象数组

来自分类Dev

Razor Pages Asp.Net-Core安装FullCalendar

来自分类Dev

ASP net Core Razor Pages - EF 和视图的拆分模型

来自分类Dev

Asp.NET Core MVC Razor页面渲染中的NotSupportedException

来自分类Dev

如何在Razor Pages ASP.NET Core中的布局内访问HostingEnvironment?

来自分类Dev

如何将<select>值绑定到ASP.NET Core MVC枚举中每个项目的名称?

来自分类Dev

如何在ASP.NET Core MVC和Angular项目中使用Angular Material组件(特别是滑块)?

来自分类Dev

如何在Asp.Net Core MVC项目中为Swagger文档明确定义API控制器路径

来自分类Dev

Identity如何在具有ASP.NET Core MVC 3.1的单个用户帐户的项目模板中工作?

来自分类Dev

是否可以从ASP.NET Core MVC项目中引用.net Framework 4.7.2类库?

来自分类Dev

如何将Blazor Razor类库中的CSS / JS文件注入ASP.NET Core Blazor项目

来自分类Dev

ASP.NET MVC Core - 通过 HttpClient 使用 API

来自分类Dev

ASP.NET Core MVC如何通过剃须刀设置``必需''属性

来自分类Dev

重命名ASP.NET Core Razor Pages中的Pages / Shared目录

来自分类Dev

如何在 asp.net core 中创建类扩展?

来自分类Dev

VS 2017 .NET Core 2.2 Razor Pages 项目失去了 Scaffold 的能力

来自分类Dev

如何为MVC(ASP.NET)项目正确使用NUGET?

来自分类Dev

如何从ASP.NET MVC项目引用Web服务?

来自分类Dev

如何为MVC(ASP.NET)项目正确使用NUGET?

来自分类Dev

在 ASP.NET Core Razor Pages 中,如何获取页面上下文之外的页面的视图引擎路径?

来自分类Dev

在ASP.NET MVC Core应用程序(RC2)中显示项目版本

Related 相关文章

  1. 1

    如何通过循环使用Asp.Net MVC Razor语法连续显示3个项目

  2. 2

    创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

  3. 3

    如何将 Razor 组件集成到具有多个路由的现有 Razor Pages Asp.net Core 项目中

  4. 4

    如何解决ASP.NET Core MVC项目中的“未找到视图”异常

  5. 5

    如何从自定义基础项目创建ASP.NET Core MVC样板

  6. 6

    如何在ASP.NET Core MVC项目中向特定区域提交表单?

  7. 7

    ASP.Net Core MVC项目无法配置路由?

  8. 8

    如何为多个用户角色构造.NET Core MVC项目?

  9. 9

    如何在ajax post请求asp.net core mvc razor中发送对象数组

  10. 10

    Razor Pages Asp.Net-Core安装FullCalendar

  11. 11

    ASP net Core Razor Pages - EF 和视图的拆分模型

  12. 12

    Asp.NET Core MVC Razor页面渲染中的NotSupportedException

  13. 13

    如何在Razor Pages ASP.NET Core中的布局内访问HostingEnvironment?

  14. 14

    如何将<select>值绑定到ASP.NET Core MVC枚举中每个项目的名称?

  15. 15

    如何在ASP.NET Core MVC和Angular项目中使用Angular Material组件(特别是滑块)?

  16. 16

    如何在Asp.Net Core MVC项目中为Swagger文档明确定义API控制器路径

  17. 17

    Identity如何在具有ASP.NET Core MVC 3.1的单个用户帐户的项目模板中工作?

  18. 18

    是否可以从ASP.NET Core MVC项目中引用.net Framework 4.7.2类库?

  19. 19

    如何将Blazor Razor类库中的CSS / JS文件注入ASP.NET Core Blazor项目

  20. 20

    ASP.NET MVC Core - 通过 HttpClient 使用 API

  21. 21

    ASP.NET Core MVC如何通过剃须刀设置``必需''属性

  22. 22

    重命名ASP.NET Core Razor Pages中的Pages / Shared目录

  23. 23

    如何在 asp.net core 中创建类扩展?

  24. 24

    VS 2017 .NET Core 2.2 Razor Pages 项目失去了 Scaffold 的能力

  25. 25

    如何为MVC(ASP.NET)项目正确使用NUGET?

  26. 26

    如何从ASP.NET MVC项目引用Web服务?

  27. 27

    如何为MVC(ASP.NET)项目正确使用NUGET?

  28. 28

    在 ASP.NET Core Razor Pages 中,如何获取页面上下文之外的页面的视图引擎路径?

  29. 29

    在ASP.NET MVC Core应用程序(RC2)中显示项目版本

热门标签

归档