Как привязать InputText к модели в бритве - PullRequest
0 голосов
/ 12 января 2020

У меня есть класс модели под названием «Пациент», класс, который обслуживает службы, связанные с «Пациентом», и интерфейс. Все они опубликованы c, за исключением интерфейса, и все находятся в отдельных файлах. Когда я пытаюсь привязать InputText на моей странице Razor к свойствам пациента, ide не находит их.

Страница бритвы:

@using BlazorApp.Data;

<EditForm Model="@patient"> 
    <div class="col-12 row">
        <label class="col-2 font-weight-bold">first name: </label>
        <InputText class="form-control col-3" @bind-Value="patient.Name"/>
        placeholder="first name" />
    </div>
</EditForm>

@code {
public Patient patient {get;set;}
protected override void OnInitialized()
{
    patient =  new Patient();
}

}

Класс модели:

public class Patient
{
    public int ID { get; set; }
    public string Name { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public Patient(){}

    public Patient(int id, string name, string lname, DateTime date)
    {
        ID = id;
        Name = name;
        LastName = lname;
        DateOfBirth = date;
    }
}

1 Ответ

0 голосов
/ 14 января 2020

Когда я пытаюсь привязать InputText на моей странице Razor к свойствам пациента, ide не находит их.

пространство имен - это blazor, и да, они также добавляются с использованием директив.

Я сделал тест на основе вашего описания и кода, которые хорошо работают на моей стороне. Пожалуйста, перепроверьте пространство имен вашего класса Patient и убедитесь, что вы импортировали его с помощью директив @using.

Класс пациента

namespace blazor 
{
    public class Patient
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string LastName { get; set; }
        public DateTime DateOfBirth { get; set; }
        public Patient() { }

        public Patient(int id, string name, string lname, DateTime date)
        {
            ID = id;
            Name = name;
            LastName = lname;
            DateOfBirth = date;
        }
    }
}

В _Imports.razor

@using blazor

В компоненте

<EditForm Model="@patient">
    <div class="col-12 row">
        <label class="col-2 font-weight-bold">first name: </label>
        <InputText class="form-control col-3" @bind-Value="patient.Name" placeholder="first name" />
    </div>
</EditForm>

@code{
    public Patient patient {get;set;}

    protected override void OnInitialized()
    {
        patient =  new Patient() {  Name = "test user"};
    }
}

Результат теста

enter image description here

...