Asp.net web api 如何处理WebAPI Post中可选的多部分数据

Asp.net web api 如何处理WebAPI Post中可选的多部分数据,asp.net-web-api,model-binding,multipartform-data,Asp.net Web Api,Model Binding,Multipartform Data,我需要创建一个ASP.NET Web API操作,该操作接受几个字符串字段和一个可选文件 如果没有文件要求,我可以使用标准: public async Task<IHttpActionResult> Post(MyModel model) 公共异步任务发布(MyModel) 由于文件总是必需的,我可以使用: public async Task<IHttpActionResult> Post() public async Task Post() (然后使用Multi

我需要创建一个ASP.NET Web API操作,该操作接受几个字符串字段和一个可选文件

如果没有文件要求,我可以使用标准:

public async Task<IHttpActionResult> Post(MyModel model)
公共异步任务发布(MyModel)
由于文件总是必需的,我可以使用:

public async Task<IHttpActionResult> Post()
public async Task Post()
(然后使用
MultipartStreamProvider
提取文件和表单数据)

考虑到这个文件是可选的,我不确定该走哪条路我的android客户端仅在存在文件时使用多部分/表单数据

我可以有两个独立的操作,这看起来本质上是错误的。或者,我可以尝试创建一个操作,该操作可以处理多部分/表单数据和普通post,但考虑到这两种情况下web api所需的方法非常不同,这似乎非常尴尬。作为第三种选择,我可以尝试强制所有调用在android端使用multipart,但这可能需要使用另一个库,这意味着更多的工作

我无法想象我是第一个遇到这个问题的人,所以我希望有人能想出一个好主意