Можно ли смешивать методы на стороне клиента и на стороне сервера в Blazor? - PullRequest
1 голос
/ 09 января 2020

В качестве примера предположим, что я создаю простую страницу изменения пароля:

  • Имя пользователя
  • Текущий пароль
  • Новый пароль
  • Подтвердите новый пароль

В целом, я хотел бы использовать серверную часть Blazor, чтобы исключить необходимость написания отдельного API-интерфейса. Однако мне бы хотелось, чтобы на клиенте запускался простой проверочный код - пароли New и Confirm не совпадают, сложность пароля и т. Д. c. Могут ли некоторые методы Blazor выполняться на клиенте, в приложении Blazor на стороне сервера? Или, что еще лучше, могут ли одни и те же методы проверки запускать ОБА клиентскую и серверную стороны?

Конечно, я всегда могу вернуться к JavaScript для проверки на стороне клиента, но было бы неплохо закодировать все в C#.

Ответы [ 2 ]

0 голосов
/ 22 марта 2020

Короткий ответ - «нет».

Однако наиболее близким к тому, что вы ищете, является шаблон проекта Blazor WebAssembly Hosted, который представляет собой Blazor WASM с поддержкой ASP. NET Core веб-приложение, размещающее его. Ваш код на стороне клиента будет в C#, и вы сможете выполнить любую проверку, которую вы ищете. Однако вам придется явно вызывать API, предоставляемый в веб-приложении хостинга (бэкэнд), используя экземпляр HttpClient. Таким образом, вы получаете полный контроль над тем, какой код выполняется на клиенте, а какой на сервере.

Отличным примером этого является шаблон проекта hosted по умолчанию (страница выборки-данных). Вы можете создать его с помощью dotnet new blazorwasm --hosted и посмотреть, как это делается там. Надеюсь, это поможет.

0 голосов
/ 22 марта 2020

Я +1 на ваш запрос, это сэкономило бы много кода - Этот шаблон существовал с SilverLight - Он был известен как RIA.

...