Как создать компоненты Blazor "Code Behind" с VS 2019? - PullRequest
1 голос
/ 13 мая 2019

Я могу создать встроенный компонент, например

<h1>@foo</h1>

@functions {

    string foo = "foo";
}

Однако, когда я создаю Foo.razor, содержащий только:

<h1>@foo</h1>

А Foo.razor.cs, содержащий:

namespace MyApp.Client.Components {
    public class Foo: ComponentBase {

        public string foo;
    }
}

Я получаю:

Error   CS0101  The namespace 'MyApp.Client.Components' already contains a definition for 'Foo'

Я использую новейшие библиотеки VS 2019 и Blazor.

Что я делаю не так?

1 Ответ

4 голосов
/ 13 мая 2019

В настоящее время представления "code-behind" и .razor не могут иметь одно и то же имя.

Так что, когда у вас есть Foo.razor.cs и Foo.razor, оно рассматривается как один и тот же файл и поэтому вызываетколлизия.

Обходной путь: Переименуйте свой Foo.razor.cs в FooBase.cs (или что-то еще).

Затем в Foo.razor добавьте @inherits FooBase

Здесь есть проблема с GitHub: https://github.com/aspnet/AspNetCore/issues/5487

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...