无法从jQuery中获取POST方法中的字符串参数

时间:2012-10-02 15:39:14

标签: c# jquery asp.net-web-api

我有像这样的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>

Ot工作得很好。 Ajax调用正在调用方法但是param为null:/ always。我不知道为什么。我无法让它运行。有人可以帮助我并告诉我正确的方向吗?

// update

也检查我创造了新项目的东西,以确保我没有破坏某些东西。即使在默认配置的新项目中,我也总是为空

1 个答案:

答案 0 :(得分: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