每当我在剃须刀页面上放置@model [Type]
时,某些通用类型和方法的类型参数都会解析为[Type],例如:
string DisplayNameFor<TResult>(Expression<Func<TModel, TResult>> expression);
成为
string DisplayNameFor<TResult>(Expression<Func<[Type], TResult>> expression);
ASP.NET Core如何实现这一目标?
TModel
类型参数如何变为[Type]?
答案 0 :(得分:1)
@model
指令指定传递给视图的模型的类型:
@model TypeNameOfModel
在使用单个用户帐户创建的ASP.NET Core MVC应用程序中, Views / Account / Login.cshtml 视图包含以下模型声明:
@model LoginViewModel
生成的类继承自RazorPage<dynamic>
:
public class _Views_Account_Login_cshtml : RazorPage<LoginViewModel>
Razor公开了一个Model
属性,用于访问传递给视图的模型:
<div>The Login Email: @Model.Email</div>
@model
指令指定此属性的类型。伪指令在视图中派生的T
中的RazorPage<T>
中指定了生成视图的类。如果未指定@model
指令,则Model
属性的类型为dynamic
。模型的值从控制器传递到视图。有关更多信息,请参见Strongly typed models and the @model keyword。
参考:@model