asp.net - @model 到底做了什么?

标签 asp.net asp.net-mvc asp.net-core

每当我将 @model [Type] 放在我的 razor 页面顶部时,一些泛型类型和方法的类型参数都会解析为 [Type],例如:

string DisplayNameFor<TResult>(Expression<Func<TModel, TResult>> expression);

成为

string DisplayNameFor<TResult>(Expression<Func<[Type], TResult>> expression);

ASP.NET Core 如何实现这一点? TModel类型参数如何变成[Type]?

最佳答案

@模型

@model指令指定传递给 View 的模型类型:

@model TypeNameOfModel

在使用个人用户帐户创建的 ASP.NET Core MVC 应用中,Views/Account/Login.cshtml View 包含以下模型声明:

@model LoginViewModel

生成的类继承自RazorPage<dynamic> :

public class _Views_Account_Login_cshtml : RazorPage<LoginViewModel>

Razor 公开了一个 Model用于访问传递给 View 的模型的属性:

<div>The Login Email: @Model.Email</div>

@model指令指定此属性的类型。该指令指定 TRazorPage<T> View 派生的生成类。如果@model未指定指令,Model属性类型为 dynamic .模型的值从 Controller 传递到 View 。有关详细信息,请参阅 Strongly typed models and the @model keyword .

引用:@model

关于asp.net - @model 到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57346982/

相关文章:

c# - 使用 ASP.NET MVC 模型绑定(bind)器进行单元测试

javascript - 使用 javascript/jquery 跨浏览器下载图像

c# - Dotnet publish 在 Debug 目录而不是 Release 目录中寻找依赖项

Javascript SessionStorage 项目在第一个函数调用中不可用

c# - 具有嵌套区域的 ASP.NET MVC4 应用程序

java - ajax MVc return从return中选择单个div。/

asp.net - 在 Application_BeginRequest 期间检查静态文件?

asp.net-core - 具有 @Body 和更多属性的 Blazor WASM LayoutComponentBase

asp.net-core - 如何在 Swagger UI 中包含 X-XSRF-TOKEN header ?

ASP.NET GridView 对计算字段进行排序