繁体   English   中英

模型绑定在POST上失败

[英]model binding fails on POST

我有一个用作网络API的ASP.Net Core 2.0项目。 客户端是使用Angular 4完成的。当我将窗体数据从我的angular服务发布到我的API时,服务器端的模型属性始终为null。 我不确定我在做什么错。 我尝试了使用application/jsonapplication/x-www-form-urlencoded各种组合。 我还尝试了[FromBody][FromForm]属性,在两种情况下,我模型的属性均为null。

在发贴期间,我在角度上做错了吗?

在此处输入图片说明

我已验证发布的json字符串(如屏幕截图所示)包含我期望的表单数据。 它在服务器上到达null。

这是我的角度服务

import { Injectable, OnInit } from '@angular/core';
import { Http, URLSearchParams, Headers, RequestOptions, Response } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/mergeMap';

import { CryptoData } from './cryptodata.interface';
import { Result } from './result.model';

@Injectable()
export class EncryptService implements OnInit {
    private options: RequestOptions;

    constructor(private http: Http) {
        this.options = new RequestOptions({
                headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' })
            })
    }

    ngOnInit() {
    }

    encrypt(data: CryptoData): Promise<Result> {
        let json: any = JSON.stringify(data);

        return this.http
        .post('/api/encrypt', json, this.options)
        .toPromise()
        .then(response => response.json());
    }

    decrypt(data: CryptoData) {

    }
}

这是我的控制器:

[Produces("application/json")]
[AllowAnonymous]
public class CryptoController : Controller
{
    [HttpPost("~/api/Encrypt")]
    public IActionResult Encrypt([FromForm] CryptoRequest request)
    {
        // Testing
        return base.Ok(new Result(data: request.Content));
    }
}

[FromBody]Content-Type:对于ASP Net Core中的相同请求,application / json对我来说效果很好。 我在Firefox中从插件发送了数据: { "key" : "1", "content" : "cont" }

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM