我试图将一些JSON传递到GET请求的MVC控制器的查询字符串中,但似乎只能作为null
传递。
Ajax(通过TypeScript)
$.ajax(url, {
method: 'GET',
data: { 'request': JSON.stringify(this.request) },
dataType: 'json'
})
MVC Controller
[Route("stuffAndThings/{request?}")]
public async Task<HttpResponseMessage> GetStuff(requestType request)
{
}
因为这是TypeScript,所以传递的对象是C#模型的TypeScript表示,包括几个自定义对象。
TS类
class requestType {
pageData: PageData;
}
C#类
public class requestType
{
public PageData pageData { get; set; } = new PageData();
}
在开发工具中查看请求,似乎已正确地传递到查询字符串上,但是始终作为 null 通过控制器。
我错过了什么?
编辑
针对一些评论,控制器方法纯粹用于数据检索,并且未来有可能将其转换为 WebAPI 方法,因此如果可能的话,我想保留它作为 GET 请求。
JSON.stringify()
的意思是你正在传递一个字符串。你的参数需要是string request
(然后对其进行反序列化)。 - user3559349