此日历不支持指定的时间(ASP样板)

时间:2019-02-14 11:42:02

标签: c# asp.net angularjs asp.net-mvc aspnetboilerplate

我正在使用ASP.Net Boilerplate v3.2.4 并且在使用HttpRequestBase

从Angularjs v1.7.5通过FileUploader将excel文件上传到MVC Controller时遇到了麻烦

因此,当我尝试上传excel文件并且网站的 语言为阿拉伯语 时,抛出了异常,如下所示:

  

此日历不支持指定的时间。它应该介于   1900年4月30日00:00:00(以公历为准)和11077/16/23 23:59:59   (公历)(含)。参数名称:时间

AppServiceBase:

Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;

Angulrjs代码:

 appModule.controller('usersIndex', [ 'FileUploader', function (fileUploader) {
        var vm = this;

        vm.logoUploader = new fileUploader({
            url: "User/UploadExcel",
            headers: {
                "X-XSRF-TOKEN": abp.security.antiForgery.getToken()
            },
            queueLimit: 1,
            removeAfterUpload: true
        });

        uploader.onSuccessItem = function (item, ajaxResponse, status) {
            if (ajaxResponse.success) {
                abp.message.success("success");
            } else {
                abp.message.error("error");
            }
        };

        vm.uploadLogo = function () {
            vm.logoUploader.uploadAll();
        };
    }

控制器代码:

    [HttpPost]
    public async Task<JsonResult> UploadExcel()
    {
        if (Request.Files.Count <= 0 || Request.Files[0] == null)
        {
            throw new UserFriendlyException(L("File_Empty_Error"));
        }

        var file = Request.Files[0];
        var usersList = new List<UserListDto>();

        using (var package = new ExcelPackage(file.InputStream))
        {
            var currentSheet = package.Workbook.Worksheets;
            var workSheet = currentSheet.First();

            usersList.Add(new UserListDto()
            {
                UserName = workSheet.Cells[1, 1].Value.ToString(),
                PhoneNumber = workSheet.Cells[1, 2].Value.ToString()
            });
        }

        return Json(new AjaxResponse(usersList));
    }

EXCEL的内容:

enter image description here

我尝试调试c#代码和javacript代码,但异常并非来自它们

感谢您的帮助

谢谢

---更新---

WORKAROUND:

我找到了解决方案, 我在上传之前使用Dto来存储数据。碰巧这个Dto包含日期,我没有直接使用它,但是它存在。

不幸的是,我没有找到解决文化问题的方法。

0 个答案:

没有答案