[英]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.