Blazor是否可以混合客户端和服务器端方法?

时间:2020-01-08 22:01:58

标签: blazor blazor-server-side

作为示例,假设我正在创建一个简单的“更改密码”页面:

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

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

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

2 个答案:

答案 0 :(得分:2)

最简单的答案是“不”。

但是,最接近您要查找的是Blazor WebAssembly Hosted项目模板,它是Blazor WASM,带有支持该模板的ASP.NET Core Web应用程序。 您的客户端代码将使用C#,并且您将能够运行所需的任何验证。但是,您将必须使用HttpClient的实例显式调用在宿主Web应用程序(后端)中公开的API。这样,您可以完全控制客户端上运行的代码和服务器上运行的代码。

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

答案 1 :(得分:0)

我+1您的请求,这将节省很多编码-Silverlight确实存在此模式-被称为RIA。