剃刀错误:不包含有关的定义

时间:2019-04-30 08:31:02

标签: c# asp.net-mvc asp.net-core razor

我是Razor新手,只是无法运行从https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-2.2&tabs=visual-studio复制的示例

我的index.cshtml:

@page
@model IndexModel

<h2>Separate page model</h2>
<p>
    @Model.Message
</p>

我的index.cshtml.cs

using Microsoft.AspNetCore.Mvc.RazorPages;
using System;

namespace aspnetcoreapp.Pages
{
    public class IndexModel : PageModel
    {
        public string Message { get; private set; } = "PageModel in C#";

        public void OnGet()
        {
            Message += $" Server time is { DateTime.Now }";
        }
    }
}

但是当我浏览此页面时,我收到此错误:

  

在编译所需的资源期间发生错误   处理此请求。请检查以下特定错误   详细信息并适当地修改您的源代码。   C:\ temp \ aspnetcoreapp \ Pages \ Index.cshtml

     

'IndexModel'不包含'Message'的定义,并且没有   扩展方法'Message'接受类型的第一个参数   可以找到“ IndexModel”(您是否缺少using指令或   组装参考?)   +       @ Model.Message

1 个答案:

答案 0 :(得分:0)

我遇到此错误的最常见情况是:

  1. 在没有调试器的情况下运行程序
  2. 将属性添加到“剃刀”页面cs文件,然后类似地更改为cshtml文件
  3. 刷新页面并收到此错误

通常会发生编译错误,而应用程序编译失败。听起来可能很愚蠢,但请确保您的应用程序确实可以构建。