Blazor: name在当前上下文中不存在



我收到CS0103错误- '名称'newHotel'在当前上下文中不存在':

我创建了一个名为'Hotel'的类和一个名为'HotelName'的属性。
我创建了一个名为'newHotel'的变量,它的类型是Hotel。
我将变量初始化为"Paradise beach"。

@page "/hotels"

<h3>Hotels</h3>
<p>
Hotel Name: @newHotel.HotelName // **THIS IS WHERE THE ERROR IS SHOWN IN VS2019**
</p>

剩余代码:

@code {
protected override void OnInitialized()
{
base.OnInitialized();
Hotel newHotel = new Hotel 
{
HotelName = "Paradise Beach"
};
}
class Hotel
{
public string HotelName { get; set; }
}
}

我不知道我哪里出错了?

许多谢谢,

这是因为newHotel是一个在OnInit方法中声明的局部变量,所以它超出了作用域。在newHotel的OnInitialized方法上面添加一个属性。


@code {
///Added property
Hotel newHotel { get; set; } = new Hotel();
protected override void OnInitialized()
{
base.OnInitialized();
newHotel = new Hotel 
{
HotelName = "Paradise Beach"
};
}
class Hotel
{
public string HotelName { get; set; }
}
}

编辑:您将遇到的下一个问题是由于页面试图在OnInit方法运行和newHotel初始化之前呈现,因此newHotel的NullReference错误。一个选项是为newHotel添加null检查,另一个选项是在声明时初始化它。


@page "/hotels"

<h3>Hotels</h3>
@if(newHotel != null)
{
<p>
Hotel Name: @newHotel.HotelName
</p>
}

我不知道这个问题是否已经解决。对我来说,删除'。v的文件夹成功了。我不认为这是代码里的东西。可能是Visual Studio在更新到新版本后出了问题。

最新更新