c# - Web API 表单数据收集

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

我正在尝试将表单序列化值发布到 Controller (Web API 自托管)。 我不明白为什么 NameValueCollection 没有正确绑定(bind)。 客户端使用 jQuery:

// Form Submit Handler
$( '#form-parameters' ).submit(function (event) {

        event.preventDefault();

        var formData = $(this).serialize();
        // Post serialized form data
        postAssemblyParameters(formData);
});

// Post Form Data to controller test
function postAssemblyParameters(formData){
        $.ajax({
                url: http://localhost/api/test/1,
                type: 'POST',
                data: formData,
                dataType: 'application/x-www-form-urlencoded',
                success: function(x3d) {
                },
                error: function(xhr) {

                }
        });
}

服务器端使用 Web API 自托管:

public void Post([FromUri] int id, [FromBody] NameValueCollection formData)
{
        Console.WriteLine(id); // OK

        // Collection is NULL
        foreach (var key in formData.AllKeys)
        {
                foreach (var val in formData.GetValues(key))
                {
                        Console.WriteLine(key + ": " + val);
                }
        }
}

非常感谢。

最佳答案

尝试使用 FormDataCollection 而不是 NameValueCollection。

http://weblogs.asp.net/cibrax/archive/2012/08/10/binding-form-data-in-asp-net-web-api.aspx

关于c# - Web API 表单数据收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13605358/

相关文章:

jquery - 几秒钟后点击删除或添加 css 样式

jquery - CSS :hover does not work after jQuery css change

c# - 根据 URL 重定向 ASP.NET 中的网页

c# - 如何在 asp.net webforms 中启用 javascript

c# - 为什么 Request.QueryString.Get() 和 NameValueCollection.Get() 返回解码值?

php - 将网页 (html) 转换为缩略图/预览以通过 PHP 文件输出

c# - 使用 LINQ 检查列表是否为空

c# - 将名称拆分为字段?

c# - MongoDB C# 查找 List<string> 包含另一个 List<string> 值的文档

c# - 终止由Visual Studio插件生成的所有线程的正确方法是什么?