【问题标题】:How can have Both MVC and Razor page in the same Project?如何在同一个项目中同时拥有 MVC 和 Razor 页面?
【发布时间】:2023-03-11 20:58:01
【问题描述】:

我有一个带有 Razor 页面的 ASP.NET Core 应用程序,我想在其中利用 MVC,所以我添加了带有 Views 的 Controllers 文件夹,并将 services.AddMvc() 添加到启动和另一个端点,然后尝试运行如果它有效。只需运行项目,我想测试它是否返回简单视图,然后在默认地址后添加控制器名称和操作,但它显示 “找不到此本地主机页面”

您能帮我配置我的应用吗?

【问题讨论】:

  • 我假设你使用的是visual studio,当你创建一个新项目时,你可以选择MVC作为项目类型,VS会为你做很多事情,比如创建一个有相应视图的HomeController !看到这张图片,我正在创建一个新项目并选择 MVC imgur.com/a/65S7J3x
  • 是的,你是对的。我现在测试一下
  • docs.microsoft.com/en-us/aspnet/core/fundamentals/… 通过.AddRazorPages() .AddControllersWithViews()

标签: c# asp.net-mvc asp.net-core asp.net-core-mvc razor-pages


【解决方案1】:

如果要将 MVC 添加到 Razor 页面项目:

1.需要在startup.cs中添加services.AddControllers();ConfigureServices并配置mvc路由:

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    services.AddControllers();
    ...
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapRazorPages();
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

2.您需要添加一个名为Controllers的文件夹和一个名为Views的文件夹。

然后将包含_Layout.cshtml_ValidationScriptsPartial.cshtmlPages/Shared文件夹复制到Views文件夹。

然后将Pages/_ViewImports.cshtml 复制到Views/_ViewImports.cshtmlPages/_ViewStarts.cshtmlViews/_ViewStarts.cshtml

这是一个项目结构:

【讨论】:

  • 我还有一个问题如果您回答我,我将不胜感激。我将按照您的指南进行操作,现在我既想开始我的项目,又想将视图中的索引作为第一页打开。但现在页面文件夹中的 Index.csHtml 排在第一位。
  • 你可以尝试在Pages/Index中使用@page "RazorPage/Index",这样Views/Index会比Pages/Index更引人注意。另外,如果你想去Pages/Index,你需要使用@ 987654341@.
  • 好的,我明白了,坦克
猜你喜欢
  • 2019-10-11
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
  • 2022-11-21
  • 2015-09-20
  • 2011-08-02
相关资源
最近更新 更多