如何从JavaScript调用通用WebAPI操作?

时间:2016-12-22 07:27:27

标签: javascript c# generics asp.net-web-api reflection

如何从JavaScript调用通用WebAPI操作?并传递T类型。

C#:

public class ClassUtilitiesController : ApiController
{
    [HttpPost]
    public string GetClassNamespace<T>()
    {
        return typeof(T).FullName;
    }
}

JavaScript的:

$.post('/api/ClassUtilities', {
    T: 'string',
    // ...
});

我需要一个从输入T类型返回内容的操作(例如typeof(T).FullName或创建实例并调用方法)。我该怎么办?

1 个答案:

答案 0 :(得分:-1)

POST的JSON数据请求它实际上是一个字符串,这意味着你必须反序列化是你想要的对象。

尝试:

public class ClassUtilitiesController : ApiController
{
    [HttpPost]
    public string GetClassNamespace(string data)
    {
        T t;
        try
        {
            t = JsonConvert.DeserializeObject<T>(data);
        }
        catch (Exception e)
        {
            return e;
        }
        return t.FullName;
    }
}