我创建了一个Blazor WASM项目



当您使用VS 2022并创建Blazor WASM应用程序时,我能问一下.Server项目的目的是什么吗。它创建了一个.Client.Server和.Shared项目,但当我运行客户端时,它根本不使用.Server。

我是要在.Client还是.Server项目中添加我的所有.rawer页面?

编辑:我应该在.Client中创建所有内容,然后再决定是将网站作为服务器运行还是作为wasm运行?

创建Blazor WebAssembly应用程序hosted时,默认模板包含三个项目。客户端项目包含(页面或可路由(组件、其他对象和组件。客户端项目是用于前端的,它在浏览器上运行。

Server项目在服务器上运行,它是后端,它包含Web Api端点,数据从该端点提供给Fetch data页面。服务器项目实际上是启动项目,其主要目的是为web应用程序提供服务。

Shared项目包含客户端和服务器项目中共享的WeatherForecast对象

让我们分析一下这个代码:

forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("WeatherForecast");  
  1. forecastsWeatherForecast对象的数组。回想一下,WeatherForecast是在共享项目中定义的

  2. await Http.GetFromJsonAsync对Server项目中公开的WebApi端点执行AJAX调用:

    公共类WeatherForecastController:ControllerBase{}

  3. <WeatherForecast[]>

此消息告诉微软公司,我们有兴趣获得WeatherForecast对象的列表

  1. ("WeatherForecast");这是控制器对象的名称(而不是您所想的共享数据对象的名称(。这实际上是到终点的url,它通过deault调用定义的唯一公共Get方法:

    [HttpGet]public IEnumerable Get(({

    }

更多需求。。。

Client项目是编译实际WASM代码的地方。

服务器项目是一个AspNetCore web服务器项目(不涉及Blazor(,它充当WASM项目和API控制器站点的主机。它被配置为将客户端项目中的wwwroot文件映射到它的web根目录。

解决方案的启动项目是服务器项目。

如果您计划创建一个不需要引用任何外部源或数据(即数据库或任何其他API(的web应用程序,那么您可能不需要Server项目,也可能不需要Shared项目。基本上,客户端项目是在客户端或浏览器中生活和运行的项目,服务器项目是您的后端,您应该在其中访问和运行针对数据库的所有CRUD操作,共享项目是一个类库,它提供在客户端和服务器项目之间共享的类定义。这样,您就不需要定义两次类和数据结构,只需定义一次,默认情况下两个项目都已经有了对它们的引用(这是在项目模板中完成的,通常您需要自己添加项目引用(。项目模板设置获取数据页面以加载随机生成的数据来显示天气,为了简单起见,他们在共享项目中这样做,但通常您会使用HttpClient向服务器项目中的控制器发出请求,以返回这样的数据。如果这让人困惑,我会接受enet的建议,先学习MVC。希望这能稍微澄清一下。

相关内容

  • 没有找到相关文章

最新更新