Asp.Net Core 2.1:设置部分视图默认位置格式

编程代码

1个回答

写回答

韩一鸣

2025-07-06 20:55

+ 关注

使用Asp.Net Core 2.1开发Web应用程序时,我们通常会使用部分视图来组织和重用页面的一部分。部分视图是一种可在其他视图中包含和重用的小片段代码。在默认情况下,部分视图的位置是根据约定的,默认情况下,它们应该位于Views文件夹下的Shared文件夹中。然而,有时候我们可能希望将部分视图放置在其他位置,以更好地组织我们的代码。

在Asp.Net Core 2.1中,我们可以通过使用ViewLocationFormats属性来设置部分视图的默认位置格式。这个属性是一个字符串数组,可以包含我们希望视图引擎去查找部分视图的位置。例如,我们可以通过以下方式设置部分视图的默认位置格式:

services.Configure<RazorViewEngineOptions>(options =>

{

options.ViewLocationFormats.Add("/Views/{1}/{0}.cshtml");

options.ViewLocationFormats.Add("/Views/Shared/{0}.cshtml");

});

在上面的示例中,我们将两个位置格式添加到ViewLocationFormats数组中。第一个位置是"/Views/{1}/{0}.cshtml",它表示部分视图应该位于Views文件夹下的与主视图相同的文件夹中。其中,{1}代表主视图的文件夹名称,{0}代表部分视图的名称。第二个位置是"/Views/Shared/{0}.cshtml",它表示部分视图应该位于Views文件夹下的Shared文件夹中。

通过设置部分视图的默认位置格式,我们可以更灵活地组织和重用我们的代码。例如,如果我们有一个名为"_Header.cshtml"的部分视图,根据上面的设置,它可以放置在"/Views/Home/_Header.cshtml"或者"/Views/Shared/_Header.cshtml"中。

案例代码:

csharp

// Startup.cs

public void ConfigureServices(IServiceCollection services)

{

services.AddMvc();

services.Configure<RazorViewEngineOptions>(options =>

{

options.ViewLocationFormats.Add("/Views/{1}/{0}.cshtml");

options.ViewLocationFormats.Add("/Views/Shared/{0}.cshtml");

});

}

csharp

// HomeController.cs

public class HomeController : Controller

{

public IActionResult Index()

{

return View();

}

}

html

<!-- Views/Home/Index.cshtml -->

@{

ViewData["Title"] = "Home Page";

}

<h1>Welcome to my website!</h1>

@Html.Partial("_Header")

html

<!-- Views/Shared/_Header.cshtml -->

<header>

<h2>This is the header</h2>

</header>

在上面的示例中,我们设置了部分视图的默认位置格式,并在主视图"Index.cshtml"中使用了部分视图"_Header.cshtml"。根据我们的设置,"_Header.cshtml"可以位于"Views/Home/_Header.cshtml"或"Views/Shared/_Header.cshtml"中。

通过这种方式,我们可以更方便地组织和重用我们的代码,使我们的应用程序更加模块化和可维护。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号