我想为我的vb.net游戏使用.NET Web API 2控制器。

我将一个添加到项目中,并按照说明更新了Global.axax.vb和Application_Start方法。

现在,我只是想弄清楚它是如何工作的。

但是我不知道用Controller方法返回什么或如何返回。

这是我的测试ajax方法:

<script>
    $("#btnUpdate").click(function(e) {

        var Data = {};
        Data.test1 = "testVal1";
        Data.test2 = "testVal2";

        $.ajax({
            url: 'api/GameData',
            method: 'POST',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            data: Data,
            success: function(data) {
                alert("Saved successfully");
            },
            fail: function(jqXHR, textStatus) {
                alert("Request failed: " + textStatus);
            }
        });
    });
</script>


这是Visual Studio生成的我的空PostValue方法:

    ' POST: api/GameData
    Public Sub PostValue(<FromBody()> ByVal value As String)
        'what type of return value?
    End Sub


该方法应该返回什么?

谢谢!

最佳答案

根据情况,它可以返回以下内容之一


void-> http响应将为204
HttpResponseMessage
IHttpActionResult
HTTP响应200的序列化返回正文


通常,使用资源创建的Http POST api返回201。例

Public Function PostValue(<FromBody> value As String) As IHttpActionResult
    Dim product = New With {Key .Name = "Watch", .Price = 250}
    return Content(HttpStatusCode.Created, product, new JsonMediaTypeFormatter())
End Function


有关详细信息,请参见示例


https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/action-results
https://msdn.microsoft.com/en-us/library/system.web.http.ihttpactionresult(v=vs.118).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

关于ajax - API Controller Post方法返回类型/值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43324838/

10-12 12:30
查看更多