Я пытаюсь использовать управление FileUpload в ASP.NET
Вот моя текущая установка пространства имен:
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
И в моем классе, я просто использую:
FileUpload fileUpload = new FileUpload();
Однако ни один из атрибутов, которые обычно являются частью FileUpload, кажется, не доступен..., такие как.HasFile. Я пытаюсь сделать метод Нажатия кнопки в коде позади, я заметил, что большая часть использования.HasFile находится в коде впереди, однако это было мое понимание, что это не должно иметь значения.
Кто-либо знает почему?
Элементы управления ASP.NET лучше размещать в файле разметки aspx . Это предпочтительный способ работы с ними. Так что добавьте на свою страницу элемент управления FileUpload
. Убедитесь, что у него есть все необходимые атрибуты, включая ID
и runat
:
<asp:FileUpload ID="FileUpload1" runat="server" />
Экземпляр FileUpload1
будет автоматически создан в автоматически сгенерированном / обновленном * .designer. cs, который является частичным классом вашей страницы. Обычно вам не нужно беспокоиться о том, что в нем, просто предположите, что любой элемент управления на странице aspx создается автоматически.
Добавьте кнопку, которая вернет сообщение:
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
Затем перейдите в свой файл * .aspx.cs, где у вас есть код, и добавьте обработчик нажатия кнопки. В C # это выглядит так:
protected void Button1_Click(object sender, EventArgs e)
{
if (this.FileUpload1.HasFile)
{
this.FileUpload1.SaveAs("c:\\" + this.FileUpload1.FileName);
}
}
И все. Все должно работать как положено.
Добавление элемента управления FileUpload из кода позади должно работать просто отлично, где свойство HasFile должно быть доступно (например, в событии Click).
Если свойства недоступны (либо в виде ошибки компилятора, либо через intellisense), вероятно, вы ссылаетесь на другую переменную, чем думаете.
Я заметил, что когда интеллект не работает для объекта, обычно возникает ошибка где-то в классе над строкой, над которой вы работаете.
Другой вариант заключается в том, что вы не создали экземпляр объекта FileUpload как переменную экземпляра. убедитесь, что код:
FileUpload fileUpload = new FileUpload();
не находится внутри функции в вашем коде.
Вместо инстанцирования FileUpload
в вашем файле code behind, просто объявите его в вашем файле разметки (файл.aspx):
<asp:FileUpload ID="fileUpload" runat="server" />
Тогда вы сможете получить доступ ко всем свойствам элемента управления, таким как HasFile
.