簡単にするために、私は単純な2パネルマルチビューを持っています。最初のファイルにはFileUploadコントロールがあり、2番目には添付ファイルとして電子メールを送信するボタンがあります。 2番目のタブで "FileUpload1.HasFile"をチェックすると、falseに戻ります。また、View 1に戻ると、空白のファイルアップロードを除いて、他のコントロールのすべての状態が正しく維持されています。ASP.net FileUploadコントロールはマルチビューパネルで状態を維持しません
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="Step1" runat="server">
<asp:FileUpload ID="FileUpload1" runat="server" Width="450" EnableViewState="true" />
</asp:View>
<asp:View ID="Step2" runat="server">
<asp:Button ID="btnSubmitForm" runat="server" Text="Submit Data" onclick="btnSubmitForm_Click" />
</asp:View>
</asp:MultiView>
ユーザーは2を表示するためにナビゲートし、ボタンをクリックする:任意のアイデアを
//Initialize smtp server
SmtpClient smtp = new SmtpClient("myHost");
//Initialize mail message object
MailMessage mail = new MailMessage();
//Set all mail message params (to, cc, subject etc...)
//attach file, this is where it fails to recognize the attached document. bool is false :(
if (FileUpload1.HasFile)
{
mail.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));
}
???