【问题标题】:Is it possible to mix client side and server side methods in Blazor?是否可以在 Blazor 中混合使用客户端和服务器端方法?
【发布时间】:2020-04-26 11:54:02
【问题描述】:

例如,假设我正在创建一个简单的更改密码页面:

  • 用户名
  • 当前密码
  • 新密码
  • 确认新密码

总的来说,我希望使用服务器端 Blazor 来消除编写单独的 API 后端的需要。但是,我希望在客户端中运行一些简单的验证代码 - 新密码和确认密码不匹配、密码复杂等。某些 Blazor 方法可以在客户端、服务器端 Blazor 应用程序中运行吗?或者更好的是,相同的验证方法可以同时运行在客户端和服务器端吗?

当然,我总是可以使用 JavaScript 进行客户端验证,但最好用 C# 编写所有代码。

【问题讨论】:

  • 提到“用 c# 编写所有内容”,这听起来像是架构,所以问题是……产生可靠、可扩展和快速性能的机制(与后端 + 前端开发相关)是什么输出(程序集、脚本等)?

标签: blazor blazor-server-side


【解决方案1】:

简短的回答是“不”。

但是,与您正在寻找的最接近的是 Blazor WebAssembly Hosted 项目模板,它是 Blazor WASM,其支持 ASP.NET Core Web 应用程序托管它。 您的客户端代码将在 C# 中,您将能够运行您正在寻找的任何验证。但是,您必须使用 HttpClient 的实例显式调用在托管 Web 应用程序(后端)中公开的 API。这样您就可以完全控制客户端上运行的代码以及服务器上运行的代码。

默认的hosted 项目模板有一个很好的例子(获取数据页面)。您可以使用dotnet new blazorwasm --hosted 创建它并查看它是如何完成的。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-10-03
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2011-09-09
    • 2016-10-13
    • 1970-01-01
    • 2015-09-19
    • 2015-06-06
    相关资源
    最近更新 更多