停止将 formData 字符串转换为日期字符串表示

Stop formData string from being converted to a date string representation

这个很难被发现。我们有一个 .NET Core 2.2 应用程序,其中我们有一个包含许多字段的表单和一个供用户附加一些文件的字段。

问题:一个特定字段 CaqhNumber 的最小和最大长度 = 8。

当用户键入一个值时,例如 20200706,发送到服务器的值是该值的日期字符串表示。所以在服务器端我们得到:

07/06/2020

基本上它认为这个特定字段是 ISO date.

如何才能阻止这种情况发生?我们只想在服务器端获取在 UI 端输入的字符串。这不是约会。两边都是普通的字符串。

有人告诉我这与 .NET Core 配置有关。

你猜怎么着...幕后有一段代码弄乱了值:

const isValidDate = moment(
        value,
        moment.ISO_8601,
        true
    ).isValid();

    if (isValidDate) {
        formData.append(
            key,
            moment(value).format('MM/DD/YYYY')
        );

修复:

if (value instanceof Date) {
    formData.append(key, moment(value).format('MM/DD/YYYY'));