【问题标题】:When submitting a form, the action method is returning null for parameter sizes if the form data is too large. ASP.NET Core 3.1提交表单时,如果表单数据太大,操作方法将返回 null 参数大小。 ASP.NET 核心 3.1
【发布时间】:2020-05-20 22:27:53
【问题描述】:

我正在使用 ASP.NET Core 3.1 - 并且正在使用 Visual Studio 2019 进行编码。

我有一个简单的表单,可以将两个文本值发送到服务器,但是,这些文本值可能很长(想象一下 A3 大小的图像 @ 300dpi,base64 图像格式)。

如果文件大小非常小,则在使用 IIS Express 在 localhost 上进行测试时,这些上传正常,但如果文本字符串变得更长(即更大的图像文件),则操作上的参数为空。我知道上传限制很大,我上传的文件字符串约为 15MB。

我的代码如下:

查看:

<form id="df" asp-controller="Design" asp-action="SortAndSave"  method="post">
        <input type="hidden" name="data2" id="data2" value="" />
        <input type="hidden" name="image2" id="image2" value="" />
        <input type="hidden" name="full" id="full" value="@full.ToString().ToLower()" />
</form>

控制器:

public ActionResult SortAndSave(string image2, string data2)
        {
}

同样,当我使用小图像时,它工作正常,当我使用大图像时,返回的值为空。当我使用大图像并使用 Request.Form.Keys 时,它也会返回 null。

我已经研究了两天,无法弄清楚我做错了什么。有人可以帮忙吗?

【问题讨论】:

    标签: asp.net-core iis


    【解决方案1】:

    您可以使用RequestSizeLimitAttribute 指定请求大小限制。在请求操作方法上指定它,如下所示:

    [RequestSizeLimit("specify size in bytes")]
    public ActionResult SortAndSave(string image2, string data2)
    {
    }
    

    【讨论】:

    • 谢谢。这与 [RequestFormLimits(ValueLengthLimit = 60000000)] 结合使用
    • 很高兴它有帮助。
    猜你喜欢
    • 2020-08-01
    • 1970-01-01
    • 2015-01-03
    • 2020-11-19
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多