簡體   English   中英

我可以將對象從Angular2傳遞到MVC5帖子嗎?

[英]Can I pass an object from Angular2 to an MVC5 Post?

我試圖將我的對象從Angular2通過帖子傳遞到MVC控制器。 我希望可以傳入實際的對象,但是當它進入我的控制器時,我的所有屬性都顯示為null。 是否可以傳遞整個對象? 我也嘗試過使用“ UrlSearchParameters”,但是它也不起作用。

這是我的控制器發布功能:

[HttpPost]
    public JsonResult AddClient(Models.Client client)
    {            
        var cli = new Models.Client();
        cli.name = client.name;
        cli.npi = client.npi;
        cli.dateAdded = DateTime.Now.ToShortDateString();
        return Json(cli);
    }

這是我的客戶類型:

 export interface Client { name: string; npi: number; dateAdded?: string; id?: number } 

這是我的Angular2服務:

 import {Injectable} from 'angular2/core'; import {Client} from './client'; import {RequestOptions, Http, Response, Headers, URLSearchParams} from 'angular2/http'; import {Observable} from 'rxjs/Observable'; @Injectable() export class ClientService { constructor(private http: Http) { } getClients(): Observable<Client[]> { return this.http.get('/Client/GetClients') .map(this.extractData); } addClient(client: Client): Observable<Client> { let clientUrl = '/Client/AddClient'; let body = JSON.stringify({ client }); let header = new Headers({ 'Content-Type': 'application/json' }); let options = new RequestOptions({ headers: header }); return this.http.post(clientUrl, body, options) .map(this.extractData) .catch(this.handleError); } private extractData(res: Response) { if (res.status < 200 || res.status >= 300) { throw new Error('Bad response status: ' + res.status); } let body = res.json(); return body || {}; } private handleError(error: any) { // In a real world app, we might send the error to remote logging infrastructure let errMsg = error.message || 'Server error'; console.error(errMsg); // log to console instead return Observable.throw(errMsg); } } 

謝謝你的幫助!

您嘗試以下操作:

 addClient(client: Client): Observable<Client> {
    let clientUrl = '/Client/AddClient';
    let body = JSON.stringify(client); // <----------

代替

addClient(client: Client): Observable<Client> {
    let clientUrl = '/Client/AddClient';
    let body = JSON.stringify({ client });

就您而言,我認為您收到以下內容:

{
  "client": {
    // client properties
    "name": "some name",
    "npi": "some npi",
    (...)
  }
}

代替

{
  // client properties
  "name": "some name",
  "npi": "some npi",
  (...)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM