Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何从api获取对象并将其映射到角度模型?_Angular_Asp.net Web Api_Angular5 - Fatal编程技术网

Angular 如何从api获取对象并将其映射到角度模型?

Angular 如何从api获取对象并将其映射到角度模型?,angular,asp.net-web-api,angular5,Angular,Asp.net Web Api,Angular5,我想从api中获取模型 为此,我使用以下方法: [HttpGet] public MyModel GetModel() { MyModel model = new MyModel() { ... }; return model; } 如何获得角度模型结果,以及如何将MyModel映射到角度模型 我有以下资料: getModel() { var url = '/MyController/GetModel/'; th

我想从api中获取模型

为此,我使用以下方法:

    [HttpGet]
    public MyModel GetModel()
    {
        MyModel model = new MyModel() { ... };

        return model;
    }
如何获得角度模型结果,以及如何将
MyModel
映射到角度模型

我有以下资料:

getModel() {
    var url = '/MyController/GetModel/';
    this.http.get(url)
        .map((data: Response) => {
            return data.json() as MyModel;
        })
        .toPromise().then(x => {
            this.myModel = x;
        })
}
我在组件的
ngOnInit
中调用它

但我有一个错误:

Uncaught (in promise): SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

我的angular请求有什么问题?

http.get采用通用的 所以你可以这样做

  getModel() {
        var url = '/MyController/GetModel/';
        this.http.get<MyModel>(url).toPromise().then(x => {
                this.myModel = x;
        });
    }
getModel(){
var url='/MyController/GetModel/';
this.http.get(url.toPromise()。然后(x=>{
this.myModel=x;
});
}

除非您的angular中的模型与api中的模型不同,否则我的工作原理如下:

getModel() {
    var url = '/MyController/GetModel/';
    return this.http.get(url)
        .map((data: Response) => {
            return data.json();
        }).toPromise().then(x => {
            this.myModel = new MyModel(x);
        })
}

MyModel
必须有一个接受
json
字符串的构造函数。

请检查您的响应是否为有效的json-。您使用的是哪个版本的Angular?如果它是4.3+,您使用的是HttpClient,那么您在代码示例中使用的是较旧的方法。它是Angular 5,我使用的是
Http
@Sergeyth此链接应该对您有所帮助@Avinash根据上面的代码,我返回的是对象而不是json。我更改了返回json的方法,例如:
public JsonResult GetModel(){MyModel MyModel=new MyModel(){..};var result=JsonConvert.SerializeObject(MyModel);返回json(result,JsonRequestBehavior.AllowGet);}
但是现在angular请求甚至没有命中Action,如果我的angular模型与api模型不一样呢@ObedI甚至无法构建它,因为出现了错误:
说:
'需要0个参数,但得到了1'
x=>
'Parameter'x'隐式具有“any”类型。
@Obedcheck这个链接,一个很酷的方法。您从哪里导入http对象?谢谢@Obed您的建议帮助我编写了正确的代码。