无法获取base64字符串到ASP.NET核心控制器
问题描述:
我有一个在base64编码的图像,我试图让它到一个控制器,但无论我尝试什么,参数总是为空。无法获取base64字符串到ASP.NET核心控制器
我正在使用angular的$http
服务;
$http.post('url', base64string);
而且我想通过一个控制器,通过它...
[HttpPost("submit/image")]
public async Task<IActionResult> SubmitImageData(byte[] data) {
// ...
}
我可以看到,数据显然是在Chrome我的请求头去。但我无法弄清楚它需要什么数据类型。 string
不起作用。 IFormFile
不起作用。我似乎无法将该死的信息传给控制器。
我知道路线是正确的。如果我放置一个调试断点,它会触发它。但无论使用何种数据类型,data
始终为null
。
答
你的JS代码应该是这个样子:
$http.post('url', { data: base64string });
和控制器的方法的声明应该是:
public async Task<IActionResult> SubmitImageData(string data) {
编辑
尝试添加[FromBody]属性:
public async Task<IActionResult> SubmitImageData([FromBody] string data) {
不幸的是,这是行不通的。它仍然是空的。 – Ciel
我知道base64字符串很好。我可以将它渲染为图像就好了。 – Ciel
我还可以在调试工具的“Request Payload”部分看到字符串。我知道它正在发送。 – Ciel