asp.net – 文件上传控件HasFile始终为false,name始终为Empty St
发布时间:2020-12-15 23:59:13 所属栏目:asp.Net 来源:网络整理
导读:我有一个详细信息视图,其中包含文件上载字段.当我填写信息并上传文件(我已经尝试了9k到6.8MB的多个文件)时,所有信息(文本字段)提交都很好,但是当我检查HasFile时,上传的文件总是返回false检查文件名时返回String.Empty. 难道我做错了什么?详细信息视图位于P
我有一个详细信息视图,其中包含文件上载字段.当我填写信息并上传文件(我已经尝试了9k到6.8MB的多个文件)时,所有信息(文本字段)提交都很好,但是当我检查HasFile时,上传的文件总是返回false检查文件名时返回String.Empty.
难道我做错了什么?详细信息视图位于Panel而非Update Panel中 <asp:Panel ID="pnlUpdate" runat="server" Visible="false"> <h4 runat="server" id="h2SubCaption">Person Details</h4> <asp:DetailsView ID="dvAssignment" runat="server" AutoGenerateRows="false" Width="100%" SkinID="SampleDetailsView" CssSelectorClass="PrettyDetailsView" DataKeyNames="guidMemberId" DefaultMode="Edit" OnItemUpdating="dvAssignment_ItemUpdating" OnModeChanging="dvAssignment_ModeChanging" AutoGenerateEditButton="True" > <Fields> <asp:TemplateField HeaderText="Nomination Letter"> <EditItemTemplate> <asp:FileUpload runat="server" ID="fileuploadNomination" /> </EditItemTemplate> </asp:TemplateField> ..... 代码背后: FileUpload _nomination = (FileUpload)dv.FindControl("fileuploadNomination"); byte[] nominationByte = null; if (_nomination.FileName != string.Empty) nominationByte = _nomination.FileBytes; //if(_nomination.HasFile) //nominationByte = _nomination.FileBytes; 编辑 编辑#2我现在已经在DetailsView周围放置了一个更新面板并将回发触发器设置为DetailsView(见下文)并且它仍然无法正常工作,它似乎在提交之前清除了上传控件. <asp:UpdatePanel ID="updatePnl" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Panel ID="pnlUpdate" runat="server" Visible="false"> <h4 runat="server" id="h2SubCaption">Person Details</h4> <asp:DetailsView ID="dvAssignment" runat="server" AutoGenerateRows="false" Width="100%" SkinID="SampleDetailsView" CssSelectorClass="PrettyDetailsView" DataKeyNames="guidMemberId" DefaultMode="Edit" OnItemUpdating="dvAssignment_ItemUpdating" OnModeChanging="dvAssignment_ModeChanging" AutoGenerateEditButton="True" > <FieldHeaderStyle Font-Bold="True" Width="150px" /> <Fields> <asp:FileUpload runat="server" ID="fileuploadNomination" /> </EditItemTemplate> </asp:TemplateField> </Fields> </asp:DetailsView > </asp:Panel> </ContentTemplate> <Triggers> <asp:PostBackTrigger ControlID="dvAssignment" /> </Triggers> </asp:UpdatePanel> Gridview代码按要求 <asp:GridView ID="gvQuality" runat="server" AutoGenerateColumns="False" Width="100%" DataKeyNames="guidMemberId" CssSelectorClass="PrettyGridView" SkinID="SampleGridView" OnSelectedIndexChanged="gvQuality_SelectedIndexChanged" onrowdatabound="gvQuality_RowDataBound"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="btnViewDetails" runat="server" Text="Edit" CommandName="Select" /> </ItemTemplate> </asp:TemplateField> 一些绑定字段在此之后(名字,姓氏等) protected void gvQuality_SelectedIndexChanged(object sender,EventArgs e) { Guid guidMemberId = (Guid)gvQuality.SelectedDataKey.Values["guidMemberId"]; PortalDataContext db = new PortalDataContext(AuthenticatedUser.ConnectionString); h2SubCaption.InnerText = "Update Person"; dvAssignment.ChangeMode(DetailsViewMode.Edit); dvAssignment.DataSource = LINQ Query Here dvAssignment.DataBind(); } 解决方法
大家好,感谢所有的帮助,但我明白了.我必须设置Page.Form.Enctype =“multipart / form-data.
这是它的代码! protected void Page_Load(object sender,EventArgs e) { this.Page.Form.Enctype = "multipart/form-data"; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 当我的Login.aspx不在我的应用程序的根目录时,如何使用ASP.
- asp.net-mvc-4 – 在ActionFilterAttribute验证时停止响应
- ASP.NET:Response.Redirect(…)后的代码会发生什么?
- asp.net-mvc – ASP.NET MVC路由
- asp.net-mvc – 在导航时维护url参数
- asp.net-mvc-3 – 如何使用MiniProfiler与单页Web应用程序/
- asp.net-mvc – ASP.NET MVC Validation将类添加到包含div
- asp.net-mvc – mvc将多个参数传递给局部视图
- asp.net-mvc-4 – 从数据库上传模型时丢失dataAnottation
- asp如何获取热点api接口?
推荐文章
站长推荐
热点阅读