0

我有这样的 POST 方法

    public void PostMethod([FromBody]string param)
    {
        var test = param;
    }

和简单的JS脚本

<script type="text/javascript">
$.ajax({
    url: 'http://localhost:8101/sd/Localization/PostMethod',
    type: 'POST',
    data: {
        param: 'test'
    }
});
</script>

工作得很好。Ajax 调用正在调用方法,但参数为空:/ 始终。我不知道为什么。我无法让它运行。有人可以帮助我并告诉我正确的方向吗?

// 更新

还要检查我创建的新项目,以确保我没有破坏某些东西。即使在默认配置的新项目中,我总是得到 null

4

1 回答 1

2

因为param简单类型,所以要使其适用于简单类型,您只需:

<script type="text/javascript"> 
$.ajax({ 
    url: 'http://localhost:8101/sd/Localization/PostMethod', 
    type: 'POST', 
    data:  {"" : 'test' } 
    } 
}); 
</script>

如果您仍想像您一样发出 POST 请求,请定义您自己的强类型模型:

class YourModel
{
    public string Param {get; set;}
}

所以你的行动:

public void PostMethod(YourModel param)   
{   
    var test = param;   
}

或使用JObject

public void PostMethod(JObject param)   
{   
    var test = param;   
}

更多信息:

http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1

于 2012-10-02T16:35:24.770 回答