首页 > 解决方案 > 当 HttpContext.Request.HasFormContentType = true 时 HttpContext.Request.Form.Keys 为空

问题描述

这是 2 天前工作的,现在不行了,我不知道为什么。我通过 ajax 提交表单数据:

    var mData = 'item=' + itemid + '&action=' + action;
    $.ajax({
        url: "/Admin/Home/Ajax",
        type: 'POST',
        contentType: 'application/x-www-form-urlencoded',
        data: mData,
        success: function (data) {
            //Do Something
        }
    });

我有一个处理传入帖子的方法:

            if (HttpContext != null && HttpContext.Request.HasFormContentType)
            {
                foreach (var key in HttpContext.Request.Form.Keys)
                {
                    QueryParams.Add(key, HttpContext.Request.Form[key]);
                }
            }

发布数据时,HttpContext.Request.HasFormContentType等于 true 然而,HttpContext.Request.Form.Keys.Count等于 0

我没有得到任何错误或任何东西。任何有关正在发生的事情的帮助或见解将不胜感激。

这是一个 dotnet core 2.2 mvc 网络应用程序。

标签: c#asp.net-mvcasp.net-core

解决方案


这是一个工作演示,如下所示:

1.查看:

<script>
    var mData = 'item=' + 1 + '&action=' + "aaa";
    $.ajax({
        url: "/Home/Ajax",
        type: 'POST',
        contentType: 'application/x-www-form-urlencoded',
        data: mData,
        success: function (data) {
            //Do Something
        }
    });
</script>

2.动作:

[HttpPost]
public void Ajax(int item,string action)
{
    if (HttpContext != null && HttpContext.Request.HasFormContentType)
    {
        foreach (var key in HttpContext.Request.Form.Keys)
        {
        }
    }
}

3.结果: 在此处输入图像描述


推荐阅读