Skip to main content
 首页 » 编程设计

c#之如何使用 Web API 2 表示成功

2024年01月24日27birdshome

我正在向我的服务器发出 PATCH 请求以更新标题:

$.ajax({ 
    url: Settings.get('serverURL') + 'Playlist/UpdateTitle', 
    type: 'PATCH', 
    dataType: 'json', 
    data: { 
        id: model.get('id'), 
        title: title 
    }, 
    success: function () { 
        console.log("Success!"); 
    }, 
    error: function (error) { 
        console.error("Failure!"); 
    } 
}); 
 
[Route("UpdateTitle")] 
[HttpPatch] 
public IHttpActionResult UpdateTitle(PlaylistDto playlistDto) 
{ 
    using (ITransaction transaction = Session.BeginTransaction()) 
    { 
        PlaylistManager.UpdateTitle(playlistDto.Id, playlistDto.Title); 
 
        transaction.Commit(); 
    } 
 
    return Ok(); 
} 

除了执行 ajax 请求的错误回调而不是成功回调之外,一切都很好。

在 Web API 2 之前,我使用的是以下没有问题的方法。显然,问题是我返回了一个 Ok 结果,而不是一个 JSON 成功对象:

[HttpPost] 
public JsonResult UpdateTitle(Guid playlistId, string title) 
{ 
    using (ITransaction transaction = Session.BeginTransaction()) 
    { 
        PlaylistManager.UpdateTitle(playlistId, title); 
 
        transaction.Commit(); 
    } 
 
    return Json(new 
        { 
            success = true 
        }); 
} 

表示 Web API 2 成功的正确方法是什么?

请您参考如下方法:

问题其实很简单:

dataType: 'json', 

告诉 jQuery 不要对服务器的响应类型使用智能猜测。如果服务器不响应 json,它将抛出错误。如果我只是删除该属性,那么一切都会按预期进行。