在继承自CreateModel
的代码隐藏类PageModel
中,我拥有Movie
属性,如下所示。
[BindProperty]
public Movie Movie { get; set; }
Movie
有许多属性,例如Title
等。
在Razor页面中,标记助手访问Movie.Title
,如下所示。
<label asp-for="Movie.Title" ></label>
<input asp-for="Movie.Title" />
<span asp-validation-for="Movie.Title" ></span>
为什么我们无法通过Movie.Title
访问Model
,如下所示?
<label asp-for="Model.Movie.Title" ></label>
<input asp-for="Model.Movie.Title" />
<span asp-validation-for="Model.Movie.Title" ></span>
根据我的理解,Model
是访问视图和控制器之间交换的所有内容的“入口点”,我知道Razor页面只是MVC的一个子集。
错误消息:
严重级代码描述项目文件行抑制状态 错误CS1061'CreateModel'不包含'Model'的定义,也没有扩展方法'Model'接受类型'CreateModel'的第一个参数(你是否缺少using指令或汇编引用?)
答案 0 :(得分:1)
从this page describing Tag Helpers开始,当您向下滚动查找@符号的用法时,它用于表示“代码开始”,因此您只需修改行以添加它:
<label asp-for="@Model.Movie.Title" ></label>
<input asp-for="@Model.Movie.Title" />
<span asp-validation-for="@Model.Movie.Title" ></span>