Blazor: найден элемент разметки с неожиданным именем «EditForm» на стороне сервера

#blazor #webassembly

#blazor #веб-сборка #webassembly

Вопрос:

Я задавал этот вопрос на другом форуме и не получил полезного ответа.

Запуск VS2019 16.8.0, .Net SDK с версии 3.1.302 по 5.0.100 — Серверный проект Blazor

У меня есть форма razor, и компилятор не распознает «EditForm», «inputText» и т. Д.

Вот код:

 page "/GetCustomerProfile"
@using QuoteBL.Data
@inject IJSRuntime JSRuntime

<h1>Please fill out form</h1>

<EditForm Model="srcfields" OnValidSubmit="@InvokeGetQuote">

    <p>
        <label for="age">Age:</label>
        <InputText id="age" @bind-Value="QuoteBLModel.age1" />
    </p>

    <p>
        <label for="smoke">Do you smoke?</label>
        <InputCheckbox id="smoke" @bind-Value="AllFieldsModel.smoker" />
    </p>

    <p>
        <label>
            Sex:
            <InputSelect @bind-Value="QuoteBLModel.sex1">
                <option value="Select Sex"></option>
                <option value="Male">Male</option>
                <option value="Female">Female</option>
            </InputSelect>
        </label>
    </p>

</EditForm>

<div>
    <span id="resultjson"></span>
</div>

@code {

    private AllFieldsModel scrfields = new AllFieldsModel();

    private async Task InvokeGetQuote()
    {

// await etc...

    }
}
  

Модель имеет 2 класса:

 namespace QuoteBL.Models
{
    public class QuoteBLModel
    {
        public static string productLine = "QoLFlexTerm";
        public static string display = "101";
        public static string state = "";
        public static string sex1 = "";
        public static string age1 = "";
        public static string face_Amount = "";
        public static string premMode = "3";
        public static string flatAmount1 = "0";
        public static string tableRating1 = "0";
        public static string command = "submit";
    }
    public class AllFieldsModel
    {
        public static string CustPhone = "";
        public static string CustEmail = "";
        public static string age1 = "";
        public static string sex1 = "";
        public static string state = "";
        public static bool   smoker = false;
        public static string name = "";
        public static string address = "";
        public static string city = "";
        public static string state = "";
        public static string zip = "";
        public static string loan = "";
        public static string agentPhone = "";
        public static string agentEmail = "";
}
  

Один ответ, который я получил, спросил меня о _imports.razor , и у меня уже был @using Microsoft.AspNetCore.Components.Forms в файле.

Не знаю, куда обратиться за помощью. Не могу понять, что не так.

Если у кого-нибудь, кто спотыкается здесь, есть предложение о том, где я должен опубликовать это. Я был бы признателен

Комментарии:

1. Полностью опубликуйте файл _imports.razor. Он может содержать синтаксическую ошибку. Здесь нет ничего явно неправильного в коде.

2. Если ваш код работает даже жестко, синтаксис помечен как неправильный, возможно, это ошибка . У меня также была эта «ошибка» несколько раз, но я не мог найти правильный способ ее решения.

Ответ №1:

Закройте visual Studio и повторно запустите его от имени администратора. Иногда требуется даже перезапуск. Но если вы использовали пространство имен, проект должен быть успешно собран, даже если он не распознает компоненты. А также удалите статику из ваших свойств (это будет вашей следующей проблемой).

Ответ №2:

Спасибо, я уже получил помощь и решил эту проблему. Я также удалил статику. Мне пришлось создавать экземпляры классов, чтобы позже присваивать значения.
Я неправильно использовал класс QuoteBLModel.sex1 должен был быть srcfields.sex1 …

Еще раз спасибо за вашу помощь