ASP.NET Core FromForm 和 FromBody 相同的操作

编程代码

1个回答

写回答

104720

2025-06-24 01:10

+ 关注

客户端
客户端

使用ASP.NET Core进行Web开发时,我们经常需要从客户端接收数据。ASP.NET Core提供了两种常用的方式来接收数据,即使用FromForm和FromBody属性。这两种属性的作用相同,但用法稍有不同。下面我们将详细介绍它们的用法,并通过示例代码来说明。

FromForm属性的使用

FromForm属性用于从表单数据中接收数据。当客户端发送的请求是以表单形式提交数据时,我们可以使用FromForm属性来接收这些数据。下面是一个简单的示例代码:

csharp

[HttpPost]

public IActionResult ProcessForm([FromForm] MyFormModel formModel)

{

// 处理表单数据

// ...

return View();

}

在上面的代码中,我们定义了一个名为ProcessForm的POST方法,并使用FromForm属性来接收名为formModel的表单数据。MyFormModel是一个自定义的模型类,用于表示表单数据的结构。

使用FromForm属性时,我们需要确保模型类的属性名称与表单中的输入元素名称相匹配。ASP.NET Core会自动将表单数据映射到模型类的属性上。

FromBody属性的使用

FromBody属性用于从请求的主体中接收数据。当客户端发送的请求是以JSON或XML等格式提交数据时,我们可以使用FromBody属性来接收这些数据。下面是一个简单的示例代码:

csharp

[HttpPost]

public IActionResult ProcessData([FromBody] MyDataModel dataModel)

{

// 处理数据

// ...

return View();

}

在上面的代码中,我们定义了一个名为ProcessData的POST方法,并使用FromBody属性来接收名为dataModel的数据。MyDataModel是一个自定义的模型类,用于表示请求主体中的数据结构。

使用FromBody属性时,我们需要确保请求主体中的数据与模型类的属性结构相匹配。ASP.NET Core会自动将请求主体中的数据映射到模型类的属性上。

在本文中,我们详细介绍了ASP.NET Core中的FromForm和FromBody属性的用法。无论是从表单数据中接收数据,还是从请求主体中接收数据,这两种属性都能帮助我们轻松地处理数据。通过合理使用这两种属性,我们可以更加高效地进行Web开发。

示例代码

csharp

public class MyFormModel

{

public string Name { get; set; }

public int Age { get; set; }

}

public class MyDataModel

{

public string Title { get; set; }

public string Content { get; set; }

}

[HttpPost]

public IActionResult ProcessForm([FromForm] MyFormModel formModel)

{

// 处理表单数据

// ...

return View();

}

[HttpPost]

public IActionResult ProcessData([FromBody] MyDataModel dataModel)

{

// 处理数据

// ...

return View();

}

参考资料:

- ASP.NET Core官方文档: etcore-5.0">https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-5.0

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号