簡體   English   中英

如何在沒有默認布局的情況下在 aspnet core mvc 上映射默認控制器

[英]how to map a default controller on aspnet core mvc without the default layout

我創建了一個 .NET Core 3.1 ASPNET 項目。 默認情況下,啟動頁面是 Home Controller/Index 頁面。

 app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });

但是我想創建一個登錄頁面,所以我創建了一個帶有新操作的新控制器,並傳遞了參數,但它不是僅渲染登錄頁面,而是在布局項目中的“@RenderBody()”內部進行渲染. 在 .NET MVC5 上,它只呈現我設置的頁面。 我已經嘗試過:

app.UseMvc(routes =>
{
   routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
});

這是同樣的事情。 登錄頁面不與布局分開呈現

在此處輸入圖片說明

這與路由無關。

如果您查看 Views 文件夾,將會有一個名為 _ViewStart.cshtml 的文件,其中包含以下代碼:

@{
    Layout = "_Layout";
}

_ViewStart.cshtml 為每個視圖運行,因此默認情況下它將布局頁面設置為 _Layout.cshtml。

有2個選項:

  • 從 _ViewStart.cshtml 中刪除代碼,這意味着需要在每個視圖中顯式設置Layout
  • 在您的登錄視圖中,將Layout設置為null

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM