【发布时间】:2020-05-30 09:00:43
【问题描述】:
我将表单作为多部分/表单数据从反应应用程序提交到 .net 后端。我使用 FormData 对使用 axios 发布数据做出反应。在服务器端,我使用 servicestack 处理数据,我设法弄清楚了文本输入,但我不知道如何接收文件输入。
这就是我从 react 提交表单的方式
handleSubmit = event => {
event.preventDefault();
var form = document.getElementById("imageForm"); // You need to use standard javascript object here
var formData = new FormData(form);
axios.post('http://myurls.com', formData, {headers: { 'Content-Type': 'multipart/form-data' }})
.then(res=>{
console.log(res);
})
.catch(error =>{
console.log(error);
})
}
这是我的 servicestack C#
#region PLUGIN
public class FormSubmit : IPlugin
{
public void Register(IAppHost appHost)
{
appHost.RegisterService(typeof(FormSubmitService));
}
}
#endregion
#region SERVICE
public class FormSubmitService : ServiceStack.Service
{
public object Post(FormSubmitRequest request)
{
return request;
}
}
#endregion
#region REQUEST
[Route("/myservice/submitform")]
public class FormSubmitRequest : IReturn<object>
{
public object ImageFile { get; set; }
public string ImageTitle { get; set; }
public string ImageDescription { get; set; }
}
#endregion
我对 C# 非常陌生,我无法确定问题所在。我的猜测是 ImageFile 的数据类型,我尝试将其设置为 object、string、bytes[] 和 System.Web.UI.WebControls.Image,但这似乎没有任何区别。
当我返回请求时,我可以看到我的请求对象包含 ImageTitle 和 ImageDescription 但没有 ImageFile,甚至没有一个空键
我真的很迷茫,甚至不知道从哪里开始调试问题。
提前感谢您的帮助!
【问题讨论】:
标签: c# reactjs servicestack form-data