是否可以将查询字符串和模型对象从angular传递到webapi?我的第一个参数始终被填充,但是即使我在请求有效载荷中看到了所有数据,模型参数也为空。
我的模特
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="formCalcul" class="col-sm-12 col-md-6 mx-auto">
<div class="form-group ft-20">
<label for="type">Type de condo</label>
<select data-cell="A1" class="form-control custom-select-lg ft-20 mb-3" id="type">
<option selected>Choose a first option</option>
<option id="min" value="180000">Le minimaliste</option>
<option id="fam" value="220000">Le familiale</option>
<option id="mod" value="400000">Le moderne</option>
</select>
</div>
<div class="form-group">
<label for="secteur">Secteur</label>
<select data-cell="A2" class="form-control custom-select-lg ft-20 mb-3" id="secteur">
<option selected>Choose a second option</option>
<option id="cha" value="25000">Charlesbourg</option>
<option id="anc" value="0">Ancienne-Lorette</option>
<option id="hau" value="80000">Haute-Ville</option>
<option id="bea" value="0">Beauport</option>
<option id="lim" value="50000">Limoilou</option>
</select>
</div>
<div class="form-group ft-30">
<label class="col-12">Total</label>
<div class="col-12">
<label data-cell="B1" data-format="$ 0,0.00" data-formula="SUM(A1:A12)">$ 0.00</label>
</div>
</div>
</form>
我的API方法
public Class Person
{
public string Name {get; set;}
public DateTime date {get; set;}
}
我的查询字符串
http://localhost:60655/api/DataInput/DataResult/?page=1&pageSize=22
请求有效载荷
[Route("MyRoute/")]
[HttpPost]
public DataSourceResult DataResult([ModelBinder(typeof(WebApiDataSourceRequestModelBinder))]DataSourceRequest request, Person model)
{
}
我的帖子通话
model: {name: "Time", date: "2014-12-18T18:35:52.087Z"…}
答案 0 :(得分:0)
目前还不清楚您要问什么,并且有很多不相关的代码。我正在回答你的琐事问题,但身体没有帮助我帮助你。
使用Angular HttpClient,您可以将查询字符串作为Http参数传递。
这是一种调用api并返回可观察到的方法:
method(object: any) {
const body = JSON.stringify(object); // Create body object
const headers = new HttpHeaders({'Content-Type': 'application/json'}); // Create headers
const param = "some-param"; // Create param value
return this.http.post<IResponse>('someurl.com/some/path', body, {headers: headers, params: new HttpParams().set('param name', param )});
}
答案 1 :(得分:0)
您应该只能使用[FromUri]
,例如:
[Route("MyRoute/")]
[HttpPost]
public DataSourceResult DataResult([FromUri] DataSourceRequest request, Person model)
{
}
看到这个非常相似的问题已经回答:Complex type is getting null in a ApiController parameter。