首页 > 编程语言 >无涯教程-ASP.NET Core - Razor导入

无涯教程-ASP.NET Core - Razor导入

时间:2023-10-11 20:32:10浏览次数:35  
标签:Core ASP Razor 视图 ViewImports 指令 文件 employee using

在本章中,无涯教程将讨论Razor View Import,除了ViewStart文件之外,还有一个 ViewImports 文件,MVC框架在呈现任何视图时都将查找该文件。

就像ViewStart文件一样,可以将ViewImports.cshtml放到文件夹中,并且ViewImports文件可以影响文件夹层次结构中的所有视图。

View Imports
  • 此视图是此版本MVC的新增功能,在以前的MVC版本中,可以使用XML配置文件来配置Razor视图引擎的某些方面。

  • 这些XML文件现在不见了,改用代码。

  • ViewImports文件是可以编写代码和放置通用指令以引入视图所需名称空间的地方。

  • 如果在视图中通常使用命名空间,则可以在 ViewImports 文件中使 using指令出现一次,而不用 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> 

现在,运行该应用程序。

Index CSHtml

您将看到错误之一,指出找不到类型或名称空间 HomePageViewModel ,可能是因为您的某些视图需要使用同using指令。因此,不要将其放置在每个视图中,而应在Views文件夹中创建View导入。只需在Views文件夹上单击鼠标右键,然后选择Add→New Item,即可为每个视图添加 using语句。

Home Page Model View

在中间窗格中,选择" MVC View Imports Pages"页面,默认情况下,名称为_ViewImports.cshtml,就像ViewStart一样,不能使用此文件来呈现HTML,因此击"Add"按钮。

View imports Cshtml

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

@using FirstAppDemo.Controllers

现在,出现在此文件夹或任何子文件夹中的所有视图将能够使用FirstAppDemo.Controllers中的类型,而无需指定确切的using语句,让无涯教程再次运行您的应用程序,您可以看到该视图现在正在工作。

FirstAppDemo Controllers

参考链接

https://www.learnfk.com/asp.net_core/asp.net-core-razor-view-import.html

标签:Core,ASP,Razor,视图,ViewImports,指令,文件,employee,using
From: https://blog.51cto.com/u_14033984/7816171

相关文章

  • 无涯教程-ASP.NET Core - Razor视图
    在本章中,无涯教程将讨论RazorViewStart。MVC中的Razor视图引擎有一个约定,即它将查找名称为_ViewStart.cshtml的任何文件,并在该文件中执行代码。ViewStart文件中的代码无法呈现到页面的HTML输出中,但可用于从各个视图内的代码块中删除重复的代码。在示例中,如果希望每个视图......
  • 无涯教程-ASP.NET Core - Razor布局
    在本章中,无涯教程将了解“RazorLayout”视图,大多数网站和Web应用程序都希望创建呈现一些常见元素的页面。布局视图现在了解什么是布局视图。"Layout"视图是扩展名为*.cshtml的Razor视图,您可以选择以所需的方式命名布局视图,在本章中,将使用名为_Layout.cshtml。这是"Layou......
  • 无涯教程-ASP.NET Core - 实体框架
    在本章中,无涯教程将设置和配置应用程序以保存和读取SQLServer数据库中的数据。要使用数据库,将使用实体框架,该框架经过了重新编写以与新的.NETFramework一起使用。在此应用程序中,将使用SQLServerLocalDB。LocalDB是为开发人员优化的SQLServer的特殊版本。VisualStudio......
  • intel 4305ue coremark 跑分
    2Kperformancerunparametersforcoremark.CoreMarkSize:666Totalticks:11713Totaltime(secs):11.713000Iterations/Sec:9391.274652Iterations:110000Compilerversion:GCC4.8.520150623(RedHat4.8.5-44)Compilerflags:-O2-DPER......
  • 兆芯6640MA coremark跑分
    2Kperformancerunparametersforcoremark.CoreMarkSize:666Totalticks:13561Totaltime(secs):13.561000Iterations/Sec:8111.496202Iterations:110000Compilerversion:GCC4.8.520150623(RedHat4.8.5-44)Compilerflags:-O2-DPER......
  • NXP ls1021a coremark跑分
    RELEASE版本2Kperformancerunparametersforcoremark.CoreMarkSize:666Totalticks:42504300Totaltime(secs):42.504300Iterations/Sec:2352.703138Iterations:100000Compilerversion:GCC4.9.320150311(prerelease)Compilerflags:-o3......
  • zynq7z030 coremark 跑分
    zynq>./coremarko02Kperformancerunparametersforcoremark.CoreMarkSize:666Totalticks:214430000Totaltime(secs):214.430000Iterations/Sec:466.352656Iterations:100000Compilerversion:GCC4.6.1Compilerflags:-o0Memorylo......
  • 无涯教程-ASP.NET Core - 属性路由
    在本章中,无涯教程将学习另一种路由方法,即基于属性的路由,通过基于属性的路由,可以在控制器类和这些类内部的方法上使用C#属性,这些属性具有告诉ASP.NETCore何时调用特定控制器的元数据。它是基于约定的路由的替代方法。按照出现的顺序,注册的顺序对路由进行判断,但是映射多个路由是......
  • 无涯教程-ASP.NET Core - MVC设置
    在本章中,无涯教程将在FirstAppDemo应用程序设置为MVC框架,将在ASP.NETCore(更具体地说,ASP.NETCoreMVC框架)构建一个Web应用程序,从技术上讲,只能使用中间件来构建整个应用程序,但是ASP.NETCoreMVC提供了可轻松创建HTML页面和基于HTTP的API的功能。要在空项目中设置MVC框架,请遵......
  • 无涯教程-ASP.NET Core - 中间件
    在本章中,无涯教程将了解如何设置中间件(Middleware),ASP.NETCore中间件控制应用程序如何响应HTTP请求。现在假设想将有关每个请求的信息记录到应用程序中。在这种情况下,可能会安装到应用程序中的第一个中间件是日志记录(Logger)组件。该记录器(Logger)可以看到有关传入请求的......