我使用EF Core进行Web API设置。我有我的模型设置并通过DBContext绑定到我的SQL服务器。我的模型有一个控制器。控制器定义Get,Put,Post和Delete方法。
我正在使用另一个也使用带有Razor页面的EF Core的应用程序的API。我将其设置为使用DBContext并创建了与我的API中相同的模型。
现在,我不得不理解如何将Web API调用中的数据集成到EF Core DBContext设置中。我不能将我的sql server连接作为Context传递,因为我希望API能够处理所有相关的数据。我想知道这是否可行。如果是这样,我该如何设置?
暂时解决这个问题,我正在覆盖默认的Razor页面.cs代码并自己调用以从我的API中获取数据并将其绑定到我的模型。这适用于获取数据,但现在我想发布或放置数据,我不知道在提交表单时如何访问我传入Razor页面的模型。如何访问表示传递到Razor页面的模型的表单数据?我想编写自己的put来将数据发送到我的API。
这是在Razor页面上单击提交按钮时调用的OnPost方法的片段以及我想要做的事情:
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
var resMsg = await DataHelper.UpdateData(1, ModelState.???) ModelState); //this calls the api to update the passed in model for the given id
}