如何将angular类实例发送到web api httpget操作C#

如何将angular类实例发送到web api httpget操作C#,c#,angular,webapi,C#,Angular,Webapi,我在英国有这样一门课 export class UserSearch { firstName: string; lastName: string; city: string; stateCode: string; } 我想从angular向web api发送一个包含数据的UserSearch实例。 我用了以下两种不同的方法,但仍然没有运气。我总能在web api上看到null。 角度服务中的代码: getSearchResults() { var req

我在英国有这样一门课

export class UserSearch {
     firstName: string;
     lastName: string;
     city: string;
     stateCode: string;
}
我想从angular向web api发送一个包含数据的UserSearch实例。 我用了以下两种不同的方法,但仍然没有运气。我总能在web api上看到null。 角度服务中的代码:

getSearchResults() {
var request: UserSearch = {} as any;
request.firstName='fName';
request.lastName='lName';
request.city='city1';
request.stateCode='sCode';
            
var params = new HttpParams().append('searchRequest', JSON.stringify(request));
return this.http.get('https://localhost:44348/api/userSearchResults/search', params);
}
如果我使用上述过程,Api将接收null。 因此,我尝试了以下方法:

getSearchResults() {
var request: UserSearch = {} as any;
request.firstName='fName';
request.lastName='lName';
request.city='city1';
request.stateCode='sCode';
            
 return this.http.get(`https://localhost:44348/api/userSearchResults/search?searchRequest=${request}`);
                    }
public class UserSearch {
public string firstName {get; set;}
public string lastName {get; set;}
public string city {get; set;}
public string stateCode {get; set;}
}
但仍然没有运气,web api操作方法仍然接收空值

以下是我的web api操作方法:

[HttpGet, Route("search")]
public IActionResult Search(UserSearch searchRequest) {
return Ok(_service.GetSearchResults(searchRequest));
}
C#web api中的UserSearch类如下所示:

getSearchResults() {
var request: UserSearch = {} as any;
request.firstName='fName';
request.lastName='lName';
request.city='city1';
request.stateCode='sCode';
            
 return this.http.get(`https://localhost:44348/api/userSearchResults/search?searchRequest=${request}`);
                    }
public class UserSearch {
public string firstName {get; set;}
public string lastName {get; set;}
public string city {get; set;}
public string stateCode {get; set;}
}
从angular向WebAPI控制器发送类实例和数据的最佳方式是什么? 有人能检查一下代码,告诉我哪里做错了?
提前感谢。

尝试使用[FromUri],如下所示:

public IActionResult Search([FromUri] UserSearch searchRequest)

您需要如下设置标题和选项:var headers=new HttpHeaders();headers.append('Content-Type',未定义);const httpOptions={headers:headers,reportProgress:true};大家好,我个人觉得modelbinder概念不是一个好主意,因为我们需要在startup.cs文件中为我们要在应用程序中创建的每个viewmodel创建一个条目。这不是个好主意。无论如何,我找到了一个简单的解决方案:我在angular service上做的唯一一个更改,您可以在我的下一个注释中看到,在这个注释框中没有留下代码片段的空间。下面是我的解决方案:getSearchResults(request:UserSearch){var params=new HttpParams().set('firstName',request.firstName).set('lastName',request.lastName).set('city',request.city).set('stateCode',request.stateCode);返回这个.http.get('',params);}有了这个,我可以在web api操作nmethod中看到值。