@html在当前上下文中不存在

时间:2019-12-20 20:45:44

标签: c# razor blazor

尝试从Blazor开始。我参加了Weatherforecast项目,并尝试使用@HTML添加一个保管箱。都非常标准。但是,我确实不断收到错误消息,即@html在当前上下文中不存在。之前曾有人问过这个问题,但我确实看到过类似问题的警告,但尚未找到好的答案。我确实将System.Web.MVC添加到Imports.razor表中。也作为组件添加。我在nuget找不到dll,所以我从以下目录获取它:C:\ Program Files(x86)\ Microsoft VisualStudio \ 2019 \ Community \ Common7 \ IDE \ CommonExtensions \ Microsoft \ Web \ Razor \ v3.0 \ MVC5 .2.2。

我重建了项目,获取了VS 2109的最新更新。我仍然似乎无法为@html访问正确的dll。任何帮助将不胜感激。

阿诺德

'''     @page“ / fetchdata”     @使用VAblazor.Data     @使用System.Web.Mvc.Html     @using System.Web.Mvc

@inject VAEntryService VAService

//下拉菜单将无法正常运行,只是这会导致错误

@Html.DropDownList("StudentGender",
                    new SelectList(Enum.GetValues(typeof(Gender))),
                    "Select Gender",
                    new { @class = "form-control" }) 

'''

1 个答案:

答案 0 :(得分:1)

您不能在Blazor中使用HTML帮助器... 您应该学习Component模型...如何创建组件,以及如何将html元素(例如select,button等)嵌入其中。

除了使用常见的html元素外,您还可以使用表示这些html元素的Blazor Forms组件,例如InputText和InputSelect。

根据请求,以下代码创建一个带有select元素的组件:

countries.razor

@page "/countries"

@if (countries == null)
{
    <p><em>Loading...</em></p>
}
else
{
    <select id="countries" onchange="@CountrySelectionChanged">
        <option></option>
        @foreach (var country in countries)
        {
            <option value="@country.ID">@country.Name</option>
        }
    </select>
}

@code
{
   // Here you should have code that retrieve a list of counties from a data store.
}