从Web服务获取序列化对象

时间:2016-02-15 00:46:17

标签: c# ajax serializable

我正在编写一个C# Web API 2网络服务,我正在使用一些AJAX代码获取一个简单的对象。正确返回对象,但是,如果完全相同的对象具有[Serializable]属性,则AJAX代码无法正常工作。

这是一个简单的对象:

public class Simple
{
    public int number { get; set; }
    public string data { get; set; }
}

以下是AJAX代码:

function sendRequest() {
    $.ajax({
        type: 'GET',
        url: serviceUrl2,
            beforeSend: function (xhr){ 
            xhr.setRequestHeader('Authorization', make_base_auth(userName, password)); 
        }
    }).success(function (data) {
        alert('Success');
        alert('data:' + data.data);
    }).error(function (jqXHR, textStatus, errorThrown) {
        $('#value1').text(jqXHR.responseText || textStatus);
    });
}

上述代码正常运行,并显示包含数据的警报。

如果相同的对象编码如下:

[Serializable]
public class Simple
{
    public int number { get; set; }
    public string data { get; set; }
}

上述代码无法正常运行,并显示一条警告“data:undefined”

以下是Web API功能:

[System.Web.Http.HttpGet]
[Route("Getsimple")]
[ResponseType(typeof(Simple))]
public async Task<IHttpActionResult> GetSimple()
{
    if (!User.Identity.IsAuthenticated)
    {

    }
    var simple = new Simple();
    simple.number = 1;
    simple.data = "test data";
    return Ok(simple);
}

我是否需要在AJAX代码中添加特定参数,还是需要在返回对象之前序列化Simple对象?如果没有,我怎样才能使代码工作?

0 个答案:

没有答案