站点图标 江湖人士

ASP.NET Core – Razor View Import用途介绍

ASP.NET Core - Razor View Import用途介绍

ASP.NET Core – Razor View Import用途介绍,本文来自于tutorialspoint.com英文翻译文章,如想看原文,底部给出了链接,您可以查看原文。通过本文的介绍,可以让我们搞.net core的开发人员了解到Razor 视图导入的用途,通常来说Razor 视图导入这个组件类似于在asp.net webform 时代将所有用户控件注册放到web.config文件一样的功效,而Razor 视图导入在本文的介绍下,在开发web项目时,整个项目由很多实体,业务代码组成,我们将所有引用放到Razor 视图导入里面统一管理,这样的好处是显而易见的,当项目界面达到几百上千个时,你会发现,这样做时,整个世界瞬间清爽了。

在这篇文章中,我们将介绍Razor View Import。除ViewStart文件外,还有一个ViewImports文件,MVC框架在渲染任何视图时都会查找该文件。

与ViewStart文件一样,我们可以将ViewImports.cshtml拖放到文件夹中,ViewImports文件可以影响文件夹层次结构中的所有视图

Razor View Import用途介绍

让我们举一个简单的例子来看看如何将using指令移动到ViewImports中。在Index视图中,我们有一个using指令来引入名称空间FirstAppDemo.Controllers,如下面的程序所示。

@using FirstAppDemo.Controllers 
@model HomePageViewModel  
@{  
   ViewBag.Title = "Home"; 
} 
<h1>Welcome!</h1> 

<table> 
   @foreach (var employee in Model.Employees) { 
      <tr> 
         <td> 
            @Html.ActionLink(employee.Id.ToString(), "Details", new { id = employee.Id })
         </td> 
         <td>@employee.Name</td> 
      </tr> 
   } 
</table>

使用指令将允许从Razor视图生成的代码正确编译。如果不使用指令,C#编译器将无法找到此Employee类型。要查看员工类型,让我们从Index.cshtml文件中删除using指令。

@model HomePageViewModel 
@{  
    ViewBag.Title = "Home"; 
} 
<h1>Welcome!</h1> 

<table> 
   @foreach (var employee in Model.Employees) { 
      <tr>
         <td>
            @Html.ActionLink(employee.Id.ToString(), "Details", new { id = employee.Id })
         </td> 
         <td>@employee.Name</td> 
      </tr> 
   } 
</table>

现在,运行该应用程序。

您将看到一个错误,指出无法找到类型或命名空间HomePageViewModel。可能是因为您的几个视图需要相同的using指令。因此,让我们在Views文件夹中创建一个View导入,而不是将其放在每个视图中。这将在每个视图中添加using语句,只需右键单击Views文件夹并选择Add→New Item。

在中间窗格中,选择MVC View Imports页面。默认情况下,名称为_ViewImports.cshtml。就像ViewStart一样,我们不能使用这个文件来呈现HTML,所以让我们点击Add按钮。

现在将this中的using指令添加到_ViewImports.cshtml文件中,如下所示。

@using FirstAppDemo.Controllers

现在,此文件夹或任何子文件夹中显示的所有视图都可以使用FirstAppDemo.Controllers中的类型,而无需指定精确的using语句。让我们再次运行您的应用程序,您可以看到该视图现在正在运行。

退出移动版