C# 基础设施IgniteUI IGFileUpload不';t在ASP.NET MVC CORE 3.0中将文件上载到服务器

C# 基础设施IgniteUI IGFileUpload不';t在ASP.NET MVC CORE 3.0中将文件上载到服务器,c#,asp.net-core-mvc,asp.net-core-3.0,ignite-ui,C#,Asp.net Core Mvc,Asp.net Core 3.0,Ignite Ui,假设我有一个简单的Index.cshtml视图: <link href="~/libs/JQueryUI/jquery-ui.css" rel="stylesheet" /> <link href="~/libs/infragistics/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" /> <link href="~/libs/infragistics/css/structure/i

假设我有一个简单的
Index.cshtml
视图:

<link href="~/libs/JQueryUI/jquery-ui.css" rel="stylesheet" />
<link href="~/libs/infragistics/css/themes/infragistics/infragistics.theme.css" rel="stylesheet" />
<link href="~/libs/infragistics/css/structure/infragistics.css" rel="stylesheet" />

@using CommonLib.Source.Common.Converters
@using CommonLib.Source.Common.Extensions
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<h1>Index</h1>

<div id="chart" style="color: blue"></div>

<div id="indicator"></div>

<div id="igFileUpload" style="color: blue"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>
<script src="~/libs/Lightweight-Charts/dist/lightweight-charts.standalone.development.js"></script>
<script src="~/MyScripts.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Context.GetAbsoluteUrl("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Context.GetAbsoluteUrl("~/Data/UploadedFiles")) // just use Url.Content for testing purposes
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
此处参考:

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
为了安全起见,我在
web.config
中设置了最大文件大小:

<security>
  <requestFiltering>
    <requestLimits maxAllowedContentLength="1073741824" /> <!-- 1 GB -->
  </requestFiltering>
</security>
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
以下是结果本身:

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
以下是控制文档的参考(其中一些不适用于
ASP.NET CORE
):

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
问题是,正如您所看到的,当控件工作时,文件实际上并没有上载到服务器。我不认为这是一个bug,我认为我对
CORE 3.0
不够熟悉,并且在
IGUploadStatusHandler.ashx
的配置中缺少了一些非常明显的东西
如果可能的话,我宁愿避免挖掘默认的Web处理程序代码

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
/编辑

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
根据@MasLoo的建议,我实现了中间件以替换显然需要的
IgnoreRoute
,但我无法理解直接从中抛出404将如何使处理程序工作:

(...)
app.UseMiddleware<IgnoreRouteMiddleware>();
(...)
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
在进行测试后,它确实会立即抛出404,实际上是两次:

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
关于评论:

//context.Response.StatusCode = 404;
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
小提琴手抓住了这个:

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
发出以下信息:

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
我没有发布这些消息,因为它们与第一条消息完全相同,内容长度为0

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
欢迎进一步提出意见

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
//编辑2

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
我想我快到了,但还不完全到。我注意到,出于某种原因,如果我保留默认URL,if代码将在UploadUrl中查找文件文件夹,而不是查找ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx路径,因此我将HtmlHelper更改为:

Html.Infragistics().Upload()
    .ID("igFileUpload")
    .Mode(UploadMode.Multiple)
    .AutoStartUpload(true)
    .ProgressUrl(Context.GetAbsoluteUrl("~/IGUploadStatusHandler.ashx"))
    .UploadUrl(Context.GetAbsoluteUrl("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
    .ControlId("serverID1")
    .Width("600px")
    .Render()
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
现在我得到了500分:

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
使用以下堆栈跟踪:

HTTP/1.1 500 Internal Server Error
Content-Type: text/plain
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Thu, 21 Nov 2019 00:17:16 GMT
Content-Length: 1398

System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead.
   at Microsoft.AspNetCore.Server.IIS.Core.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at Microsoft.AspNetCore.Server.IIS.Core.WrappingStream.Read(Byte[] buffer, Int32 offset, Int32 count)
   at Infragistics.Web.Mvc.MiddleWare.UploadModuleMiddleware.ReadFully(Stream input)
   at Infragistics.Web.Mvc.MiddleWare.UploadModuleMiddleware.Invoke(HttpContext context)
   at CryptoBotCoreMVC.Middlewares.IgnoreRouteMiddleware.Invoke(HttpContext context) in <Path>\CSharp\Projects\CryptoBotCoreMVC\CryptoBotCoreMVC\Middlewares\IgnoreRouteMiddleware.cs:line 23
   at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

HEADERS
=======
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 244
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary3RFkBWmZhhsbjzXr
Host: localhost
Pragma: no-cache
Referer: http://localhost/CryptoBotCoreMVC
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36
Sec-Fetch-Mode: cors
Origin: http://localhost
Sec-Fetch-Site: same-origin
@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>

确实是这样,我很快就会发布详细的答案。

为了让
IgniteUI
中的
iGpload
控件与
ASP.NET CORE MVC 3.0
一起工作,您需要执行以下步骤(请注意,它仍然没有将大文件分块传输,请参阅本文)(尚未更新ASP.NET CORE的

@using Infragistics.Web.Mvc
@using Microsoft.AspNetCore.Http
@{
    ViewData["Title"] = "Index";
}

<div id="igFileUpload"></div>

<script src="~/libs/JQuery/jquery.js"></script>
<script src="~/libs/JQueryUI/jquery-ui.js"></script>
<script src="~/libs/infragistics/js/infragistics.core.js"></script>
<script src="~/libs/infragistics/js/infragistics.lob.js"></script>

@(
    Html.Infragistics().Upload()
        .ID("igFileUpload")
        .Mode(UploadMode.Multiple)
        .AutoStartUpload(true)
        .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
        .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
        .ControlId("serverID1")
        .Width("600px")
        .Render()
)

<div id="error-message" style="color: #FF0000; font-weight: bold;"></div>

<script type="text/javascript">
    $(function () {
        $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
            }
        });
    });
</script>
  • 添加
    Infragistics.Web.AspNetCore
    IgniteUI
    NuGet软件包,或从
    Infragistics
    安装文件夹手动添加脚本、
    .css
    文件和
    .dll
    文件作为依赖项:

    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • web.config
    文件中设置
    maxAllowedContentLength

    using System;
    using System.IO;
    using CommonLib.Source.Common.Utils;
    using Infragistics.Web.Mvc;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Http;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.FileProviders;
    using Microsoft.Extensions.Hosting;
    
    namespace CryptoBotCoreMVC
    {
        public class Startup
        {
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
                services.AddMvc(option => option.EnableEndpointRouting = false);
                //services.Configure<UploadAppSettings>(options =>
                //{
                //    options.FileUploadPath = $@"{Directory.GetCurrentDirectory()}\Data"; //WebUtils.GetWebAppAbsolutePath("
                //}); // TODO: fu doesn't work | FileUploadPath is set in the View because it is too early to do it here
            }
    
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IServiceProvider svp)
            {
                WebUtils.Configure(app.ApplicationServices.GetRequiredService<IHttpContextAccessor>(), env); 
                if (env.IsDevelopment())
                    app.UseDeveloperExceptionPage();
    
                app.UseStaticFiles();
                app.UseRouting();
                app.UseUploadModuleMiddleware();
                app.UseUploadHandlerMiddleware();
                app.UseFileServer(new FileServerOptions
                {
                    FileProvider = new PhysicalFileProvider($@"{Directory.GetCurrentDirectory()}\Data"),
                    RequestPath = "/Data",
                    EnableDirectoryBrowsing = true
                });
    
                app.UseMvc(routes =>
                {
                    routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
                });
            }
        }
    }
    
    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • IIS
    中设置
    允许的最大内容长度(字节)
    CTRL+R
    inetmgr
    IIS类别
    请求筛选
    操作窗格(右侧)
    编辑功能设置…

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • options.AllowSynchronousIO=true
    包含在
    Startup.cs
    文件中,用于
    Kestrel
    和/或
    IIS
    以防止
    中间件
    抛出
    不允许同步操作。调用ReadAsync或将AllowSynchronousIO改为true
    异常

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • maxFileSizeLimit
    设置为正值,因为尽管有文档语句,如果将其设置为
    null
    -1
    或根本不设置此选项,则它将不适用于较大的文件

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • FileUploadPath
    设置为应用程序驱动器上的物理目录(而不是虚拟目录)

    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • 呈现控件,包括
    ProgressUrl
    UploadUrl
    ControlID
    选项,并将它们设置为下面可见的精确值,以防止
    中间件
    抛出各种inxeplicit
    404
    错误(代码示例将位于此答案的底部)

    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
  • 获得所需的结果:

    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    

  • @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
    重要提示:
    IgnoreRoute
    不是必需的!

    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
    代码示例:

    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    
    Startup.cs

    using System.IO;
    using Infragistics.Web.Mvc;
    using Microsoft.AspNetCore.Builder;
    using Microsoft.AspNetCore.Hosting;
    using Microsoft.AspNetCore.Server.Kestrel.Core;
    using Microsoft.Extensions.DependencyInjection;
    using Microsoft.Extensions.Hosting;
    
    namespace IgUpload
    {
        public class Startup
        {
            public void ConfigureServices(IServiceCollection services)
            {
                services.AddMvc(options => options.EnableEndpointRouting = false);
                services.Configure<KestrelServerOptions>(options => options.AllowSynchronousIO = true);
                services.Configure<IISServerOptions>(options => options.AllowSynchronousIO = true);
                services.Configure<UploadAppSettings>(options =>
                {
                    options.maxFileSizeLimit = "1073741824"; // 1 GB
                    options.FileUploadPath = $@"{Directory.GetCurrentDirectory()}\Data\UploadedFiles";
                });
            }
    
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                if (env.IsDevelopment()) app.UseDeveloperExceptionPage();
                app.UseStaticFiles();
                app.UseRouting();
                app.UseUploadModuleMiddleware();
                app.UseUploadHandlerMiddleware();
                app.UseMvc(routes => routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"));
            }
        }
    }
    
    @using Infragistics.Web.Mvc
    @using Microsoft.AspNetCore.Http
    @{
        ViewData["Title"] = "Index";
    }
    
    <div id="igFileUpload"></div>
    
    <script src="~/libs/JQuery/jquery.js"></script>
    <script src="~/libs/JQueryUI/jquery-ui.js"></script>
    <script src="~/libs/infragistics/js/infragistics.core.js"></script>
    <script src="~/libs/infragistics/js/infragistics.lob.js"></script>
    
    @(
        Html.Infragistics().Upload()
            .ID("igFileUpload")
            .Mode(UploadMode.Multiple)
            .AutoStartUpload(true)
            .ProgressUrl(Url.Content("~/IGUploadStatusHandler.ashx"))
            .UploadUrl(Url.Content("~/ig_fua34sf345sdf13sdf3454erdsf2345asd3425df5235d54df345.aspx"))
            .ControlId("serverID1")
            .Width("600px")
            .Render()
    )
    
    <div id="error-message" style="color: #FF0000; font-weight: bold;"></div>
    
    <script type="text/javascript">
        $(function () {
            $("#igFileUpload").bind({ iguploadonerror: function (e, args) {
                    $("#error-message").html(args.errorMessage).stop(true, true).fadeIn(500).delay(3000).fadeOut(500);
                }
            });
        });
    </script>
    

    基于MVC项目,您需要忽略到HTTP处理程序的路由。IgnoreRoute在ASP.NET CORE 3.0 afaik中不可用。对,它在整个.NET CORE中都不可用(在CORE 1.0中也不可用)。您可以将其作为中间件来实现。更新我的帖子以包含您的建议@MasLoo,我将感谢您的进一步帮助。这行有什么问题:
    options.FileUploadPath=$@“{Directory.GetCurrentDirectory()}\Data”
    ?它也容易出错吗?